Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неявный тип локальных переменных 
:(
    Опции темы
tercat
Дата 11.10.2012, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 8.8.2012

Репутация: нет
Всего: нет



Почему рекомендуется использовать неявный тип локальных переменных вместо явного типа?

Код

var webClient = new WebClient();


вместо 


Код

WebClient webClient = new WebClient();

PM MAIL   Вверх
VSB
Дата 11.10.2012, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 23.8.2007

Репутация: 1
Всего: 2



Код

class A {/*...*/}

class B:A {/*...*/}

var b1=new B(); //b1 имеет тип B

A b2=new B(); //b2 имеет тип A, важно при вызове виртуальных функций.

Как то так я думаю.
PM MAIL   Вверх
IBS
Дата 12.10.2012, 19:59 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 29.7.2008
Где: Белоруссия

Репутация: 1
Всего: 6



Цитата(tercat @  11.10.2012,  14:11 Найти цитируемый пост)
Почему рекомендуется использовать неявный тип локальных переменных вместо явного типа?

Не, ни разу не рекомендуется )
Но, если посмотреть на этот код, то очевидно, что variable  имеет тип WebClient, а писать МЕНЬШЕ, так зачем писать больше?? =)
Код

var variable = new WebClient();


а вот из такой строки, сразу, нифига не видно:
Код

var eshoVariable  = variable ;

Следовательно, в этом случае, правильнее писать так:
Код

WebClient eshoVariable  = variable ;


Это сообщение отредактировал(а) IBS - 12.10.2012, 20:02
PM MAIL   Вверх
Moid
Дата 17.10.2012, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 27.3.2006

Репутация: 2
Всего: 3





--------------------
"Всё должно быть сделано настолько простым, насколько это возможно, но не проще" (с) А.Эйнштейн
PM MAIL   Вверх
Экскалупатор
Дата 17.10.2012, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



))) так спросил бы у него, чего он это рекомендует.
PM MAIL ICQ   Вверх
RoboTown
Дата 21.10.2012, 03:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.10.2012
Где: Стратосфера

Репутация: нет
Всего: нет



Все зависит от ситуации, как правильно отметили выше. Помните когда var появился? Правильно, вместе с LINQ. И цель его, в первую очередь, была в том, чтобы избегать написания длинных (и часто не очевидных) типов с генерик параметрами. В случае с WebClient явная форма даже возможно чуть лучше, но в целом здесь нормально писать и так и так.
PM MAIL WWW   Вверх
mihryak
Дата 22.10.2012, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



Цитата(RoboTown @  21.10.2012,  04:53 Найти цитируемый пост)
цель его, в первую очередь, была в том, чтобы избегать написания длинных (и часто не очевидных) типов с генерик параметрами

цель была дать возможность создавать переменные анонимных типов, а там уж и на обычные 
типы распространилась фишка, раз уж уже ввели её
PM MAIL ICQ   Вверх
RoboTown
Дата 1.11.2012, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 21.10.2012
Где: Стратосфера

Репутация: нет
Всего: нет



Цитата

цель была дать возможность создавать переменные анонимных типов

Соглашусь, но для сложных вложенных генерик типов в LINQ тоже.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0776 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.