এখানে একটি গুরুত্বপূর্ণ বিষয় রয়েছে যা লোকেরা সবসময় উপেক্ষা করে বলে মনে করে:
আপনি কোনও কিছুতে একটি সরল অ্যারে পাস করতে পারেন যা কোনও 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>।