我有類似如下的一類使用內部列表:C#的隱式轉換到列表<T>返回運行時錯誤
public class MyList<T> : IEnumerable<T>
{
private List<T> _lstInternal;
public MyList()
{
_lstInternal = new List<T>();
}
public static implicit operator List<T>(MyList<T> toCast)
{
return toCast._lstInternal;
}
}
當我試圖通過MyList<object>
給帶有List<object>
一個功能,我得到一個InvalidCastException的。爲什麼?
您使用的是什麼版本的C#?我正在使用4.0,並且能夠在沒有'InvalidCastException'的情況下執行你在這裏描述的內容。 – Donut 2010-10-27 19:41:42
是不是有一個原因,你不只是從'List'派生? –
CodesInChaos
2010-10-27 19:49:16
@CodeInChaos,那麼類的用戶將能夠改變列表或通過索引器訪問它。也許作者不想公開該功能。 – 2010-10-27 19:57:18