|
Reshareper
|
|||
---|---|---|---|
#18+
Поставил себе сей плагин по рекомендации 1 человека, чисто пощупать :) куча возможностей рефакторинга, решарпер подсказывает всюду как и что делать, всё очень круто. но вот на такую строку List<string> cultureList = new List<string>(); он советуем мне "Use implicitly typed local variable declaration" (предлагает сделать cultureList типа var) возникает вопрос, нафига? в чем фишка я не пойму, я же явно указываю класс и тут же создаю экземпляр этого класса. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 08:36 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Roman Mejtes, считает, что можно обойтись одним явным указанием типа переменной. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 09:04 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Roman Mejtes, Чтобы вы не повторялись (DRY). Также см. http://msdn.microsoft.com/en-us/library/vstudio/ff926074.aspx (секция Implicitly Typed Local Variables) P.S.: В таком случае предлагать изменять List<string> на var уже не будет: Код: c# 1.
где GetCultureList это: Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 09:53 |
|
Reshareper
|
|||
---|---|---|---|
#18+
enigmatic, что то я туплю, но мне не понятен смысл этого действия по сути var может принимать экземпляры любых классов, но если я и так заранее знаю какой тип будет приниматься, зачем мне вообще var? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 10:05 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Roman Mejtes, предлагается использовать var там, где очевидно какой тип у объявляемой переменной. Что Вам не ясно-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 10:11 |
|
Reshareper
|
|||
---|---|---|---|
#18+
skyANA, я понимаю, что исходя из правой части, тип переменной очевиден и даже если я укажу var интерпретатор, отладчик и другие смогут определить какой класс присвоен переменной типа var. вопрос в другом, нафига? для меня это тоже очевидно, по этому я сразу в левой части указываю имя класса. то есть это ради сокращения набивания ненужного текста? или это ради каких то других целей? ведь по сути оба варианта правильнее, и меня всегда долбили тем, что все переменные должны быть объявлены явно , бла бла бла. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 10:18 |
|
Reshareper
|
|||
---|---|---|---|
#18+
skyANA, ну в этой статье противоречий хватает основная суть как я уже писал это использование анонимных классов и тупо для "удобства" восприятия кода авторКлючевое слово var удобно, когда определенный тип переменной сложно вводить с клавиатуры, либо он является очевидным, либо не повышает удобочитаемость кода. Примером подобного применения ключевого слова var служит ситуация со вложенными универсальными типами, которые используются операциях по группировке. В следующем запросе используется переменная запроса с типом IEnumerable<IGrouping<string, Student>>. При условии, что пользователи, работающие с кодом, понимают данные принципы, не возникнет никаких проблем с использованием неявной типизации для удобства и краткости. и тут же типа, если что мы не виноваты и вас предупреждали: авторОднако использование ключевого слова var может сделать код более трудным для понимания другими разработчиками. По этой причине в документации по C# ключевое слово var обычно используется только при необходимости. skyANA вы сама используйте var в случаи если имя класса можно определить из правой части команды присвоения? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 10:41 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Roman Mejtesради сокращения набивания ненужного текста?Да. авторОднако использование ключевого слова var может сделать код более трудным для понимания другими разработчиками. По этой причине в документации по C# ключевое слово var обычно используется только при необходимости.Тема весьма холивористая, поэтому бессмысленно советовать или не советовать использовать var. Сторонников обоих подходов хватает. Можно использовать гугл и найти тонну информации по этой теме, а затем уже всё решить для себя. Возвращаясь к начальному вопросу: Решарпер предлагает вам заменить List<string> на var в: Код: c# 1.
Зачем? Ответ: он считает, что писать List<string> cultureList избыточно, поскольку из правой части и так понятно, что cultureList это List<string>. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 10:59 |
|
Reshareper
|
|||
---|---|---|---|
#18+
enigmatic, дак отключи в настройках эту рекомендацию,.. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 11:31 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Roman Mejtesосновная суть как я уже писалГде писали? Roman Mejtesтупо для "удобства" восприятия кодаРазочарованы? Roman MejtesВы самаЯ "само" Roman Mejtesиспользуйте var в случаи если имя класса можно определить из правой части команды присвоения?Доа. P.S.: вообщем в MSDN всё написано. Если мало, то ищите в гугле по строке: "C# использование var". Кстати, почему Вы это ещё не сделали? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 11:32 |
|
Reshareper
|
|||
---|---|---|---|
#18+
enigmatic, вообще я начал пробовать использовать var прикольно и удобно =) но одно но когда я пишу int j = 0; он говорит. что бы я int указал как var, а может я предполагал какой то другой класс? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 11:34 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Где-то в степиenigmatic, дак отключи в настройках эту рекомендацию,..Это не рекомендация, а всего-лишь suggestion (предложение). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 11:35 |
|
Reshareper
|
|||
---|---|---|---|
#18+
skyANA, ну щас мы и филфак будем окучивать..)) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 11:40 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Где-то в степиskyANA, ну щас мы и филфак будем окучивать..))А походу надо:Roman Mejtesкогда я пишу int j = 0; он говорит. что бы я int указал как var , а может я предполагал какой то другой класс? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 11:56 |
|
Reshareper
|
|||
---|---|---|---|
#18+
P.S.: кстати int - это структура. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 11:59 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Roman Mejtesкогда я пишу int j = 0; он говорит. что бы я int указал как var, а может я предполагал какой то другой класс? Ну так правильно. 0 по умолчанию - это int вот если бы было 0L - это long ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 12:04 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Arm790 по умолчанию - это int Не по умолчанию, а по определению. Числовой литерал без десятичной точки и спецификатора типа, лежащий в интервале Int32, всегда рассматривается как Int32. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 15:38 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Dictionary<string,List<mytype>>items = new Dictionary<string,List<mytype>>() не лениво набирать? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 17:03 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Roman Mejtesвозникает вопрос, нафига? в чем фишка я не пойму, я же явно указываю класс и тут же создаю экземпляр этого класса. Боянистый вопрос, ответ был прост, в общем случае потерь в производительности от явного указания типа переменой и использования var нет, посему более правильно указывать var, что позволяет экономит время программисту в случае смены типа переменой, т.е. типа меньше движений коду, проще отладка как то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 18:07 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Asm64Dт.е. типа меньше движений коду, проще отладка как то так. Я помню когда это появилось в Решарпере очень многие спорили с разработчиками по этому вопросу, в следующим билде разработчики сделали возможность отключения это подсказки в настройках. Я вот как-то привык к var иногда удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 18:10 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Asm64D, да, спасибо всем за ответы! я правда не в курсе был о холиваре по этому поводу )) но просто меня во всех книгах долбили этими явными указаниями типа, бла бла бла и в итоге я всегда делал так как раньше. Попробовал вариант который мне предложил ReSharper, выслушал ваше мнение и советы и пришел к выводу, что использование var действительно удобно :) осталось, только приучить себя делать сразу через var ) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2013, 06:53 |
|
Reshareper
|
|||
---|---|---|---|
#18+
Roman Mejtesно просто меня во всех книгах долбили этими явными указаниями типа, бла бла бла и в итоге я всегда делал так как раньшеЧто-то Вы путаете, раньше не было НЕявного указания типа, поэтому странно, что Вы нашли книгу, где долбили обратным. Что за книга? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2013, 08:16 |
|
Reshareper
|
|||
---|---|---|---|
#18+
skyANARoman Mejtesно просто меня во всех книгах долбили этими явными указаниями типа, бла бла бла и в итоге я всегда делал так как раньшеЧто-то Вы путаете, раньше не было НЕявного указания типа, поэтому странно, что Вы нашли книгу, где долбили обратным. Что за книга?Ничего не путает. Да, раньше не было НЕявного указания типа и, да, в книгах долбили этими явными указаниями. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2013, 08:49 |
|
Reshareper
|
|||
---|---|---|---|
#18+
skyANA, В таких языка как VB , QB к примеру существовал тип Variant ужасно медлительный и приводивший к полному аналкарнавалу в коде :) в книгах по С++ такая форма записи если мне не изменяет память просто норма. Но там вроде и var нету ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2013, 09:21 |
|
|
start [/forum/topic.php?fid=20&msg=38168483&tid=1405089]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 314ms |
total: | 463ms |
0 / 0 |