私はPOCOオブジェクトをラップおよび追加機能を提供WrapperBase<PocoBase>
クラスを有しています。BaseType <any>はどのように指定できますか?</p> <pre><code>public class WrapperBase<T> where T : PocoBase </code></pre><p>といくつかの実装をその基底クラスの上に:
public class ButtonWrapper : WrapperBase<Button>
public class ZipperWrapper : WrapperBase<Zipper>
私は、コンストラクタのパラメータとしてWrapperBase<T>
を取るクラスを作成しようとしています。
public class ThingDoer
where T : PocoBase
{
public ThingDoer(WrapperBase<T> wrapper)
{
}
}
が、私がしようとするものに関係なくは、ThingDoer
は望んでいるT
の定義:
new ThingDoer<Zipper>(zipperWrapper);
// I don't care what T is... get rid of <Zipper>
私は私が望むすべての機能があるので、私は、T
が何であるかを気にしない」と言うことができますどのようにWrapperBase
"?
ジェネリックで作業する場合、「<' and '>」は名前の一部にすぎないと想像してください。 2つのクラスが 'public class ButtonWrapper:WrapperBase_Button'と' public class ZipperWrapper:WrapperBase_Zipper'として定義されていることをもう一度想像してみてください。あなたの質問についてもう一度考えてみましょう。クラスを持たないので 'WrapperBase' 'WrapperBase_Button'と' WrapperBase_Zipper'という名前の2つのクラスがあります。これらのクラスは名前の最初の12文字を共有する以外には何もしません。 –