ように私は、次のインタフェースとクラスを持っている:C#ジェネリック型パラメータ
public abstract class A {}
public abstract class B<T> : IType<T>
{
public T Value { get; set; }
}
public interface IType<T>
{
T Value { get; set; }
}
public class C : B<String>, IType<String> { }
public class D : B<Int32>, IType<Int32> { }
にはどうすれA
を使用せずに、メソッドのパラメータとしてCまたはDを渡すことができますか? したがって、パラメータタイプはIType<T>
またはB<T>
である必要があります。
残念ながら、私はジェネリックスに完全に新しくなっているので、どんな助けでも感謝しています。ありがとう!
EDIT
私は何を達成しようとしているが、私はそのメソッドにCまたはDを渡すことができるように、以下の(コンパイルされません)
public void SetB(B<T> Type)
{
//Do stuff...
}
のようなものです。
あなたは現在コンパイルしていないものなので、あなたがしようとしていることを理解することは本当に難しいです。コードをコンパイルするために質問を更新して、何をしようとしているかを説明する素早い擬似コードスニペットを追加できますか? 'ITYPE'、という "' B 'や' ITYPE '" 'B 'があるので、 –
があることと等価である '' ITYPEので、単にあなたのパラメータの型として 'ITYPE を'使用すると間違って何ですか? –
fuglede
@DavidLありがとう、私の質問を更新 – Nordrassil