您可能知道,C#中的數組實現IList<T>了其他接口。但不知何故,他們這樣做沒有公開實現Count屬性IList<T>!數組只有一個Length屬性。這是一個明顯的例子,C#/ .NET打破了自己關于接口實現的規(guī)則,還是我錯過了什么?
3 回答

哈士奇WWW
TA貢獻1799條經驗 獲得超6個贊
IList<T>.Count是明確實現的:
int[] intArray = new int[10];
IList<int> intArrayAsList = (IList<int>)intArray;
Debug.Assert(intArrayAsList.Count == 10);
這樣做是為了當你有一個簡單的數組變量時,你沒有這兩個Count并且Length直接可用。
通常,當您希望確??梢砸蕴囟ǚ绞绞褂妙愋蜁r,使用顯式接口實現,而不強制該類型的所有使用者以這種方式考慮它。
編輯:糟糕,糟糕的回憶那里。ICollection.Count明確實施。該通用IList<T>名稱由Hans descibes處理。
- 3 回答
- 0 關注
- 771 瀏覽
添加回答
舉報
0/150
提交
取消