私はMyBaseClassから継承する2つのクラス(MyClass1とMyClass2)を持っています。継承したクラスを関数パラメータとして
私はこのprivate void DoStuff(List<MyBaseClass> input)
{
...
}
のように、パラメータとして、これらのいずれかのリストを取る関数を書きたい
は、どのように私は、この関数にリストを渡すのですか?
私はMyBaseClassから継承する2つのクラス(MyClass1とMyClass2)を持っています。継承したクラスを関数パラメータとして
私はこのprivate void DoStuff(List<MyBaseClass> input)
{
...
}
のように、パラメータとして、これらのいずれかのリストを取る関数を書きたい
は、どのように私は、この関数にリストを渡すのですか?
List<MyClass1>
は a List<MyBaseClass>
ではありません。その理由を説明するために、一般的な分散については、スタックオーバーフローを検索してください。
一つますでき行うことが一般的な作りです、C#4および.NET 4に、
private void DoStuff<T>(List<T> input) where T : MyBaseClass
また、あなただけそれを反復処理する必要がある場合、あなたは共変であるIEnumerable<T>
を使用することができますT
:
private void DoStuff(IEnumerable<MyBaseClass> input)
リスト
@Zainを渡すことができるようにしたい:私が提案した両方の方法でそれを可能にする。 –
あなたは私に教えてくれませんか 私的空DoStuff(IEnumerable
はあなたが 'や'一覧 ''リストを渡すことができるようにしたいことを意味するか、またはあなたが混合物または 'MyClass1'を含む'一覧 'を通過したいですかと 'MyClass2'インスタンス? –
LukeH
リストを渡すことができるようにしたいまたはリスト –