CollectionBase内部利用
int IList.Add(object value); //***** 注意这里 ****** 显示声明接口
而CollectionBase内部使用arratlist来作为容器进行添加删除,
我不明白的是比如
public class Cards : CollectionBase
{
public void Add(Card newCard)
{
List.Add(newCard);
}
这里的add按理说应该是调用上面的方法的吧?
可为什么我不能理解是调用arraylist里面的add方法呢?
毕竟list是arraylist的实例化,不知道说的清楚吗?
int IList.Add(object value); //***** 注意这里 ****** 显示声明接口
而CollectionBase内部使用arratlist来作为容器进行添加删除,
我不明白的是比如
public class Cards : CollectionBase
{
public void Add(Card newCard)
{
List.Add(newCard);
}
这里的add按理说应该是调用上面的方法的吧?
可为什么我不能理解是调用arraylist里面的add方法呢?
毕竟list是arraylist的实例化,不知道说的清楚吗?
解决方案 »
- 那位高人winform有用到过AxOfficeViewer插件和AxAcroPDFLib.AxAcroPDF插件往给予指教
- 如何查询开始日期和结束日期之间的数据
- 必须先声明变量@i,请这手解答
- C#中如何實現文件下載到本機再列印
- vs2005下用CrystalReport的问题
- 如何可以不锁住winform中的控件?
- C#中怎么做到这样的stylevar["charset"]下标为字符串的数组?
- 如何取得正在运行的程序名(不是进程名)?
- datagridview中回车选择数据?
- 请问:如何随机生成10000个8位密码! 生成后存在SQL 数据库中?
- DataGridViewComboBoxColumn中DataSource问题
- c#多态的问题,还是关于A a = new B()!
里面的List 其实return的就是 他本身.protected IList List
{
get
{
return this;
}
}然后List的每个方法里(如List.Add()); 里面是实现了对InnerList就是那个arratlist的的具体操作.
包括一些异常处理和数据验证
当然用InnerList直接Add效果是一样的
而要继承ilist接口来add操作呢,归根结底不还是对arraylist的add操作?
就是为了进行一些验证?
======================================================
这句话不知道是谁说的,有何依据。如果你看过微软放出来的源代码,或许就不会有这类疑问了。