एक महत्वपूर्ण बात यह है कि लोग हमेशा अनदेखी करने लगते हैं:
आप एक सादे सरणी को किसी ऐसी चीज से पारित कर सकते हैं जो एक 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>