İnsanların her zaman göz ardı ettiği önemli bir şey var:
IList<T>Parametreyi kabul eden bir şeye düz bir dizi geçirebilir ve ardından IList.Add()bir çalışma zamanı istisnası arayabilir ve alabilirsiniz:
Unhandled Exception: System.NotSupportedException: Collection was of a fixed size.
Örneğin, aşağıdaki kodu göz önünde bulundurun:
private void test(IList<int> list)
{
list.Add(1);
}
Bunu aşağıdaki gibi çağırırsanız, bir çalışma zamanı istisnası alırsınız:
int[] array = new int[0];
test(array);
Bunun nedeni, düz dizilerin IList<T> Liskov ikame ilkesini ihlal etmesidir.
Bu nedenle, eğer arıyorsanız, yerine IList<T>.Add()bir List<T>yerine ihtiyaç duyabilirsiniz IList<T>.