次のクラスがあるとします。
public abstract class MyRecordClass
{
public int id { get; private set; }
}
public class ExampleMyRecordClass : MyRecordClass {}
public enum SomeIntEnum : int {}
public class MyList<T, E> : IList<T>
where T : MyRecordClass
{
}
public class MyOtherClass
{
public void MyMethod(MyList<T, E> list) {}
}
、次のようにメソッドを呼び出したいと思います:
MyList<ExampleMyRecordClass, SomeIntEnum> myList;
MyOtherClass myOtherClass;
myOtherClass.MyMethod(myList);
MyList<ExampleMyRecordClass, SomeIntEnum>
ただし、暗黙的なアップキャストはジェネリック型では機能しないため、 type のリストを渡す場合、これは実際には機能しません。本当に必要なのは propertyだけなので、もちろん、この情報を含む新しいコレクションを返すid
プロパティまたはメソッドを明示的に実装できます。MyList<T, E>
私がやりたいのは、これを暗黙的に行うことです。これを可能にする方法 (おそらく暗黙の演算子、または に実装する追加のインターフェイスMyList<T, E>
) はありますか?