Здравствуйте,
Глупая бага .net . Почему ее не исправят?
...
public static void SomeMethod<T>(this ICollection<T> items)
{
if (items == null)
items = new List<T>();
}
...
class User {
...
public virtual ICollection<Group> Groups { get; set; }
}
...
void func(){
...
user.Groups.SomeMethod();
// here: user.Groups == null
}
До и после вызова user.Groups.SomeMethod()
user.Groups == null
но по идее интерпретатор .net должен пердать в метод SomeMethod сслыку на поле user.Groups,
или выкинуть исключение потому что мы пишем код так
null.SomeMethod();
а то зачем нам в С# строгая типизация
а он в тихую отрабатывает метод.