А сколько она экономит? или это настолько частая процедура? тем более, что диалоги add reference имеет кэш и при последующих запусках открывается быстрее (а в vs2010 так и вообще — подгружает ассинхронно). Не поймите неправильно — я просто только для себя не вижу в ней особого смысла.
Вопрос к автору: а она работает только с GAC? умеет ли добавлять ссылки на проекты из того же солюшна?
Я так понимаю, это коробочный вариант вот этого habrahabr.ru/blogs/net/75831
Вещь интересная и в некоторых случаях — полезная. Но я бы за неё платить не стал, уж простите.
>>NullReferenceException в .Count() произошел бы все равно
Там возник бы ArgumentNullException, но возможно вы и правы — слишком коротко выразил мысль.
Попробуйте перечитать комментарии, может до вас дойдет. (где вы там увидели то, что я не понимаю как работает оператор || — для меня загадка).Не моя вина, что для вас совершенно нормально, что у null можно вызвать метод и не получить NullReferenceException (из-за «сахарного» синтаксиса расширяющих методов)
Попытка номер 4:
1) Utility.IsNullOrEmpty(null as List<int>) — нормально
2) (null as List<int>).IsNullOrEmpty() — выглядет ненормально
Хотя в IL обе эти строчки будут выглядеть _абсолютно_ одинаково.
Именно об этом я и писал, но большинство почему то подумало, что я не знаю как работает оператор ||… Видемо пишут быстрее чему думают или для них совершенно нормально, что у null можно вызвать какой-то метод (причем тут только IsNullOrEmpty ?? в любом extension method'е автор может реализовать проверку на null, в результате которой (null as Class1).SomeMethod(); не будет падать. к примеру с помощь. extension method можно написать вот так:
(null as string).Replace(); — и этот код нормально выполнится.
Жаль, что тут оказалось так мало адекватных людей.
Design Patterns от банды четырех будет наверное скучноватой C#/.NET программисту, мне кажется будет гораздо легче рассматривать их в контексте родного языка (благо, ресурсов в интернете хватает)
Вопрос к автору: а она работает только с GAC? умеет ли добавлять ссылки на проекты из того же солюшна?
Вещь интересная и в некоторых случаях — полезная. Но я бы за неё платить не стал, уж простите.
Там возник бы ArgumentNullException, но возможно вы и правы — слишком коротко выразил мысль.
Попытка номер 4:
1) Utility.IsNullOrEmpty(null as List<int>) — нормально
2) (null as List<int>).IsNullOrEmpty() — выглядет ненормально
Хотя в IL обе эти строчки будут выглядеть _абсолютно_ одинаково.
(null as string).Replace(); — и этот код нормально выполнится.
Жаль, что тут оказалось так мало адекватных людей.
List items = null;
bool r = items.IsNullOrEmpty();
скажут, что тут возникнет исключение (если не знать, про extension method)