如何让一个支持IList的类的this[int index].get的返回类型为某一固定类型(而非object)?
今天模仿着做一个IList类,是用Reflector看着System.Web.UI.WebControls.ListItemCollection做的。IList要求实现object this[int index]{get;set;},然而我看到ListItemCollection是通过如下方法实现固定返回类型的:(这是Reflector提供的C#代码)
void IList.set_Item(int index, object value)
{
this.listItems[index] = (ListItem) value;
}
public ListItem this[int index]
{
get
{
return (ListItem) this.listItems[index];
}
}
然而我模仿着这样去做,却无法通过编译,为什么呢?难道.NET Framework使用的编译器比我们的要宽松,甚至它直接写IL的?