powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Reshareper
25 сообщений из 50, страница 1 из 2
Reshareper
    #38167437
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставил себе сей плагин по рекомендации 1 человека, чисто пощупать :)
куча возможностей рефакторинга, решарпер подсказывает всюду как и что делать, всё очень круто.
но вот на такую строку

List<string> cultureList = new List<string>();
он советуем мне "Use implicitly typed local variable declaration" (предлагает сделать cultureList типа var)
возникает вопрос, нафига? в чем фишка я не пойму, я же явно указываю класс и тут же создаю экземпляр этого класса.
...
Рейтинг: 0 / 0
Reshareper
    #38167458
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes, считает, что можно обойтись одним явным указанием типа переменной.
...
Рейтинг: 0 / 0
Reshareper
    #38167499
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

Чтобы вы не повторялись (DRY).

Также см. http://msdn.microsoft.com/en-us/library/vstudio/ff926074.aspx (секция Implicitly Typed Local Variables)

P.S.:
В таком случае предлагать изменять List<string> на var уже не будет:
Код: c#
1.
List<string> cultureList = GetCultureList();

где GetCultureList это:
Код: c#
1.
2.
3.
List<string> GetCultureList(){
// smth-smth...
}
...
Рейтинг: 0 / 0
Reshareper
    #38167511
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmatic,

что то я туплю, но мне не понятен смысл этого действия
по сути var может принимать экземпляры любых классов, но если я и так заранее знаю какой тип будет приниматься, зачем мне вообще var?
...
Рейтинг: 0 / 0
Reshareper
    #38167528
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes, предлагается использовать var там, где очевидно какой тип у объявляемой переменной. Что Вам не ясно-то?
...
Рейтинг: 0 / 0
Reshareper
    #38167543
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

я понимаю, что исходя из правой части, тип переменной очевиден и даже если я укажу var интерпретатор, отладчик и другие смогут определить какой класс присвоен переменной типа var.
вопрос в другом, нафига? для меня это тоже очевидно, по этому я сразу в левой части указываю имя класса.

то есть это ради сокращения набивания ненужного текста? или это ради каких то других целей? ведь по сути оба варианта правильнее, и меня всегда долбили тем, что все переменные должны быть объявлены явно , бла бла бла.
...
Рейтинг: 0 / 0
Reshareper
    #38167550
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Reshareper
    #38167595
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, ну в этой статье противоречий хватает
основная суть как я уже писал это использование анонимных классов и тупо для "удобства" восприятия кода
авторКлючевое слово var удобно, когда определенный тип переменной сложно вводить с клавиатуры, либо он является очевидным, либо не повышает удобочитаемость кода. Примером подобного применения ключевого слова var служит ситуация со вложенными универсальными типами, которые используются операциях по группировке. В следующем запросе используется переменная запроса с типом IEnumerable<IGrouping<string, Student>>. При условии, что пользователи, работающие с кодом, понимают данные принципы, не возникнет никаких проблем с использованием неявной типизации для удобства и краткости.

и тут же типа, если что мы не виноваты и вас предупреждали:
авторОднако использование ключевого слова var может сделать код более трудным для понимания другими разработчиками. По этой причине в документации по C# ключевое слово var обычно используется только при необходимости.

skyANA вы сама используйте var в случаи если имя класса можно определить из правой части команды присвоения?
...
Рейтинг: 0 / 0
Reshareper
    #38167628
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesради сокращения набивания ненужного текста?Да.
авторОднако использование ключевого слова var может сделать код более трудным для понимания другими разработчиками. По этой причине в документации по C# ключевое слово var обычно используется только при необходимости.Тема весьма холивористая, поэтому бессмысленно советовать или не советовать использовать var. Сторонников обоих подходов хватает. Можно использовать гугл и найти тонну информации по этой теме, а затем уже всё решить для себя.

Возвращаясь к начальному вопросу:
Решарпер предлагает вам заменить List<string> на var в:
Код: c#
1.
List<string> cultureList = new List<string>();

Зачем?
Ответ: он считает, что писать List<string> cultureList избыточно, поскольку из правой части и так понятно, что cultureList это List<string>.
...
Рейтинг: 0 / 0
Reshareper
    #38167695
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmatic,
дак отключи в настройках эту рекомендацию,..
...
Рейтинг: 0 / 0
Reshareper
    #38167698
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesосновная суть как я уже писалГде писали?
Roman Mejtesтупо для "удобства" восприятия кодаРазочарованы?
Roman MejtesВы самаЯ "само"
Roman Mejtesиспользуйте var в случаи если имя класса можно определить из правой части команды присвоения?Доа.

P.S.: вообщем в MSDN всё написано. Если мало, то ищите в гугле по строке: "C# использование var". Кстати, почему Вы это ещё не сделали?
...
Рейтинг: 0 / 0
Reshareper
    #38167711
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmatic, вообще я начал пробовать использовать var прикольно и удобно =) но одно но

когда я пишу int j = 0; он говорит. что бы я int указал как var, а может я предполагал какой то другой класс?
...
Рейтинг: 0 / 0
Reshareper
    #38167717
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиenigmatic,
дак отключи в настройках эту рекомендацию,..Это не рекомендация, а всего-лишь suggestion (предложение).
...
Рейтинг: 0 / 0
Reshareper
    #38167732
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
ну щас мы и филфак будем окучивать..))
...
Рейтинг: 0 / 0
Reshareper
    #38167761
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиskyANA,
ну щас мы и филфак будем окучивать..))А походу надо:Roman Mejtesкогда я пишу int j = 0; он говорит. что бы я int указал как var , а может я предполагал какой то другой класс?
...
Рейтинг: 0 / 0
Reshareper
    #38167765
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.: кстати int - это структура.
...
Рейтинг: 0 / 0
Reshareper
    #38167775
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesкогда я пишу int j = 0; он говорит. что бы я int указал как var, а может я предполагал какой то другой класс?

Ну так правильно. 0 по умолчанию - это int
вот если бы было 0L - это long
...
Рейтинг: 0 / 0
Reshareper
    #38168193
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm790 по умолчанию - это int
Не по умолчанию, а по определению. Числовой литерал без десятичной точки и спецификатора типа, лежащий в интервале Int32, всегда рассматривается как Int32.
...
Рейтинг: 0 / 0
Reshareper
    #38168360
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dictionary<string,List<mytype>>items = new Dictionary<string,List<mytype>>()
не лениво набирать?
...
Рейтинг: 0 / 0
Reshareper
    #38168479
Фотография Asm64D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesвозникает вопрос, нафига? в чем фишка я не пойму, я же явно указываю класс и тут же создаю экземпляр этого класса.
Боянистый вопрос, ответ был прост, в общем случае потерь в производительности от явного указания типа переменой и использования var нет, посему более правильно указывать var, что позволяет экономит время программисту в случае смены типа переменой, т.е. типа меньше движений коду, проще отладка как то так.
...
Рейтинг: 0 / 0
Reshareper
    #38168483
Фотография Asm64D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asm64Dт.е. типа меньше движений коду, проще отладка как то так.
Я помню когда это появилось в Решарпере очень многие спорили с разработчиками по этому вопросу, в следующим билде разработчики сделали возможность отключения это подсказки в настройках. Я вот как-то привык к var иногда удобно.
...
Рейтинг: 0 / 0
Reshareper
    #38168962
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Asm64D,

да, спасибо всем за ответы!
я правда не в курсе был о холиваре по этому поводу )) но просто меня во всех книгах долбили этими явными указаниями типа, бла бла бла и в итоге я всегда делал так как раньше. Попробовал вариант который мне предложил ReSharper, выслушал ваше мнение и советы и пришел к выводу, что использование var действительно удобно :) осталось, только приучить себя делать сразу через var )
...
Рейтинг: 0 / 0
Reshareper
    #38168990
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesно просто меня во всех книгах долбили этими явными указаниями типа, бла бла бла и в итоге я всегда делал так как раньшеЧто-то Вы путаете, раньше не было НЕявного указания типа, поэтому странно, что Вы нашли книгу, где долбили обратным. Что за книга?
...
Рейтинг: 0 / 0
Reshareper
    #38169018
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANARoman Mejtesно просто меня во всех книгах долбили этими явными указаниями типа, бла бла бла и в итоге я всегда делал так как раньшеЧто-то Вы путаете, раньше не было НЕявного указания типа, поэтому странно, что Вы нашли книгу, где долбили обратным. Что за книга?Ничего не путает. Да, раньше не было НЕявного указания типа и, да, в книгах долбили этими явными указаниями.
...
Рейтинг: 0 / 0
Reshareper
    #38169040
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

В таких языка как VB , QB к примеру существовал тип Variant ужасно медлительный и приводивший к полному аналкарнавалу в коде :) в книгах по С++ такая форма записи если мне не изменяет память просто норма. Но там вроде и var нету
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Reshareper
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]