Є важлива річ, яку люди, здається, завжди не помічають:
Ви можете передати звичайний масив до чогось, що приймає IList<T>параметр, а потім ви можете зателефонувати IList.Add()і отримаєте виняток з виконання:
Unhandled Exception: System.NotSupportedException: Collection was of a fixed size.
Наприклад, врахуйте наступний код:
private void test(IList<int> list)
{
list.Add(1);
}
Якщо ви зателефонуєте так, ви отримаєте виняток із виконання:
int[] array = new int[0];
test(array);
Це відбувається тому, що використання простих масивів із IList<T>порушенням принципу заміни Ліскова.
З цієї причини, якщо ви телефонуєте, IList<T>.Add()ви можете розглянути питання про необхідність отриманняList<T> а IList<T>.