![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
Я уже давно вижу во многих примера используется ключевое слово var.
По сути я ещё не видел отличия от того что напишу просто тип или var. Что можете рассказать об этом типе\ключе? |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 2 Всего: 173 |
Без var, например, нельзя объявить переменную анонимного типа.
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 1 Всего: 26 |
Это не тип , а ключевое слово , означающее поредение типа переменной автоматически на этапе компиляции
http://msdn.microsoft.com/ru-ru/library/bb383973.aspx Ввод ключевого слова var был обусловлен вводом в эксплуатацию LINQ , где определение типа коллекции зачастую довольно сложно , а порой и вообще не возможно ( при использовании анонимных типов ). Поэтому было введено ключевое слово var Насколько мне известно Microsoft не рекомендует использовать var кроме как для указанной выше цели. Тем не менее даже вокруг этого возникли споры и разногласия. R# к примеру предлагает везде где есть возможность его использовать Классическим примером является сравнение 2 строк кода :
Понятно , что в данном случае в первой строчке кода происходит дублирование информации о типе. У использования ключевого слово var есть и другие преимущества. Лично я очень осторожно отношусь к этому ключевому слову и стараюсь его не использовать. Просто исходя из принципа : от добра добра не ищут. -------------------- Жизнь - печальная штука. |
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
хотелось бы услышать ещё мнения.
но по сути в IL код компилятор создат одинаковые команды из вашего пример? |
|||
|
||||
| wester |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 3 Всего: 13 |
||||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
ч.т.д тут нужно собрать факты, обговорить с командой, и делать как думает команда.
|
|||
|
||||
| Voyager |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 8.2.2005 Репутация: 3 Всего: 18 |
Это просто синтаксический сахар. Для себя я выявил правило - как можно реже его употреблять.
|
|||
|
||||
| wester |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 3 Всего: 13 |
кусок из моего проекта - количество шума уменьшается очень сильно при использовании var |
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
ну вот эта часть мне кажется не удачная. |
|||
|
||||
| DenWPF |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
да и вот сейчас подумал к примеру
лучше выглядит
чем
и вот ещё, как по мне не очень то и понятно выглядит
Это сообщение отредактировал(а) DenWPF - 17.4.2011, 23:00 |
||||||
|
|||||||
| mimik |
|
||||||||
![]() не Rohoss Я ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 1.11.2010 Репутация: нет Всего: 2 |
т.е. а это понятно, да
это же тоже самое что и
тип ведь не конкретизируется |
||||||||
|
|||||||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
|
|||
|
||||
| wester |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 3 Всего: 13 |
DenWPF,
тут мне было лень писать нормальное имя переменной. Халтура, что уж тут сказать) mimik,
тут дело в том, что при дебаге такое сокращение может получить кучу головной боли для программиста. Самое банальное - нет такого элемента с указанным индексом. и здесь появится ошибка в рантайме. Этот фрагмент вообще стоит переписать. |
||||
|
|||||
| DenWPF |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
там продумано программистом, не возможна другой вариант. в конструкторе добавляется два элемента, и не где они не удаляются.
+ это вобще для динамического создания объектов, в релизе такого не будет.
будет как одна команда. т.е полностью IL код будет одинаковый?
|
||||
|
|||||
| Экскалупатор |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
конечно нет, я так понимаю что в temp.m_pathImage идет обращение к свойству объекта? которое что то возвращает? и куда оно возвращает?
в этом случае переменная temp станет того же типа что и свойство. но для меня остается загадкой какого типа эта переменная будет... я бы тут написал тип переменной. Это сообщение отредактировал(а) Экскалупатор - 18.4.2011, 09:11 |
||||
|
|||||
| gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 3 Всего: 40 |
||||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
по названию понятно что path это путь(и скорее всего будет строка), но честно скажу, видел иногда очень странные названия и не удивлюсь если там вместо строки, к примеру, лежит индекс этой картинки в каком нибудь листе или еще где. но это опять же детали.
Это сообщение отредактировал(а) Экскалупатор - 18.4.2011, 09:53 |
|||
|
||||
| DenWPF |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
В общем я понял, использование var как приятное дополнение.
Использовать var нужно только там где он не помешает, и обязательно обзывать переменную, так что и далекий человек от программирования мог понять. Всем спасибо. |
|||
|
||||
| mimik |
|
||||
![]() не Rohoss Я ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 1.11.2010 Репутация: нет Всего: 2 |
я хотел сказать почему такое считается нормальным
и если не нравится var почему тогда не
ведь с variable.Method1() вы работаете как с var |
||||
|
|||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 10 Всего: 36 |
А что здесь ненормального? а-ля функциональное программирование, код с linq чуть ли не весь такой. Макконнелл так вообще советует в большинстве случаев не использовать локальные переменные, заменяя из вызовом метода. Маньячить тут, как и везде, не стоит, но здравый смысл тут налицо, мне кажется - зачем эти переменные t1 и t2 будут висеть в области видимости, если они больше не нужны. |
|||
|
||||
| neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Единственное правило которым я пользуюсь: никогда не заменять примитивные типы (int, char, bool, string ... ) на var. А остальное на усмотрение кодера. Был у меня какой-то цикл foreach в котором мне надо было пройтись по дженерик Dictionary. Если не писать var, то такие ужосы получаются...
-------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |