ดูคำจำกัดความของคลาสSystem.Array
public abstract class Array : IList, ...
ในทางทฤษฎีฉันควรจะสามารถเขียนบิตนี้และมีความสุข
int[] list = new int[] {};
IList iList = (IList)list;
ฉันควรจะสามารถเรียกวิธีการใด ๆ จาก iList
ilist.Add(1); //exception here
คำถามของฉันไม่ใช่ว่าทำไมฉันถึงได้รับการยกเว้น แต่ทำไม Array จึงใช้ IList ?