C_Sharp 板


LINE

这有点历史问题... 先说明 IList 是个介面 (Interface),所以不算继承,只算实作。 最原始的 List 其实叫做 ArrayList,从 .NET 1.0 就有了,是在 System.Collections 里面;那时的 ArrayList 其实就是一个只能容纳 object 的类别,模仿取代 C 时代 的指标 list 而已。 现在用的 System.Collections.Generic 中的 List 其实是有 generics 後的版本, 可以指定该 List 的资料型别,用於取代原本只能使用 object 的 ArrayList。 但是原型上这两个是应该通用的,所以说 List 必须继承 IList,以便有使用到 IList 介面宣告时可以相容新的 List。 原 PO 所说的 Add(object item),其实就是 IList 的实作,如果不想处理相关的新增 动作,直接 throw new NotImplementedException("Non-generic list not supported") 就好,但如果要实作则建议做型别判断,如: public int Add(object item) { if (item is int) { // 对 int 做转换动作 } else if (...) { } else { throw new NotSupportedException("Data type not supported."); } } (上例为 c#) 正确使用上如果有人使用你继承 List 的类别,名为 MyInheritedList,宣告为 public class MyInheritedList : IList<int>, IList, ... (後面省略) 他可以这样用: IList myList = new MyInheritedList(); myList.Add(12345); 而不会出现错误 或是他也可以这样用: IList<int> myList = new MyInheritedList(); myList.Add(12345); 当然也可以用其他型别/类别解释,不过大同小异 - 会要求有 Add(object item) 纯粹 是历史问题。 附上 MSDN 做参考: List<T> - http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx ArrayList - http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx IList.Add 方法 - http://msdn.microsoft.com/en-us/library/system.collections.ilist.add.aspx 小弟第一次回应文,还请各位先进多多指正,谢谢! --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.120.81.102
1F:推 party100046:List<T> 用在动态新增也可以唷 11/05 19:29
2F:→ knifehandz:嗯,ArrayList 跟 List 最大用处其实就是动态阵列 11/06 04:29







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP