using System; using System.Collections.Generic; public class SiteList { protected SortedList<int, string> sites; //其他成员函数 public string this[int index] { get { if(index>sites.Count) return (string)null; return (string)sites.GetByIndex(inex) } } //其他东西 }
这里VS提示“找不到GetByIndex的定义”,但是如果把using 中的Generic去掉的话,原来的“找不到定义”消失,却又提示“非泛型 类型“System.Collections.SortedList”不能与类型实参一起使用”,难道带参数的SortedList不是继承不带参数的SortedList吗?
SortedList
SortedList<TKey, TValue>
这是两个类型,同时 SortedList<TKey, TValue> 同 SortedList之间没有任何关系。
难道是《C#揭秘》书上有错误么?
@飞鸟_Asuka: 你把书的截图贴出来,我不认为书中会有如此明显的错误。
@Launcher:
我反复比对书上代码和我录入的代码,确认没有录入错误
@飞鸟_Asuka: 从你的截图来看确实有错误,你确定作者没有对 SortedList<TKey, TValue> 类型增加扩展方法 GetByIndex?
@Launcher: 没有。一开始我以为GetByIndex是自己定义的,后来发现并没有这个函数的定义。
@飞鸟_Asuka: 那就是他写错了。
@Launcher: 那么也只能这么认为了,不过只要能理解委托和事件的用法就可以了。非常感谢