次のようなコレクション クラスがあります。
public class SomeDataCollection : List<ISomeData>
{
// some method ...
}
しかし、私はこれを行うことはできません:
SomeDataCollection someDatas = new List<ISomeData>();
タイプを に暗黙的に変換することはできません。明示的な変換が存在します (キャストがありませんか?)
List<ISomeData>
SomeDataCollection
SomeDataCollection
だから私はコレクションクラス内に暗黙的な変換器を作成しようとします:
public static implicit operator SomeDataCollection(List<ISomeData> l)
{
var someDatas = new SomeDataCollection();
someDatas.AddRange(l);
return someDatas;
}
しかし、私はそのようなコンバーターを作成できないと言っていました:
SomeDataCollection.implicit operator SomeDataCollection(List<ISomeData>)
:基本クラスとの間のユーザー定義の変換は許可されていません
そして、私がこのようにキャストすると:
SomeDataCollection someDatas = (SomeDataCollection)new List<ISomeData>();
次のようなエラーがスローされます。
System.InvalidCastException:型 のオブジェクトを型 にキャストできませ
List<ISomeData>
んSomeDataCollection
。
これどうやってするの:
SomeDataCollection someDatas = new List<ISomeData>();
エラーが発生しませんか?助けてください。前もって感謝します。