インターフェイスクラスIBaseInterfaceは、実装クラスをインターフェイス自体として「ラベル付け」するためにのみ使用されます。汎用インターフェイスを実装するC#クラスを宣言する
このような方法はありますか?例えば
:そのような
public class MyClass : T where T : IBaseInterface
{
}
インターフェイスクラスIBaseInterfaceは、実装クラスをインターフェイス自体として「ラベル付け」するためにのみ使用されます。汎用インターフェイスを実装するC#クラスを宣言する
このような方法はありますか?例えば
:そのような
public class MyClass : T where T : IBaseInterface
{
}
いいえ、コンパイラは、クラスを宣言するときにクラスが実装するインターフェイスを知っていなければなりません。 汎用パラメータ〜をインタフェースに設定できますが、実際のインタフェースを指定する必要があります。
ない、ありません。私は強く、あなたがしようとしているものを達成しようとするために組成パターンを使用することをお勧めします。代わりに、あなたはDynamicProxy(または他のプロキシソリューション)があなたの目的です。
宣言しているタイプは一般的ではありません。このような何か:(C++テンプレートが代わりの.NETジェネリック医薬品の使用された場合、たとえば)
class MyClass<T> : T where T : IBaseInterface
は、いくつかの状況の下で働くことができますが、それは単に、有効なC#コードではありません。
私がのために使用される「ラベル」が何であるかわからないんだけど、 ClassType
がenum
は仕事ができるという特性を持つインターフェース
ClassType ClassType { get; }
。
ジェネリック型はどのように機能しますか? – BoltClock
.NETでは、特定の動作のためにクラスにタグを付けるだけの場合は、空のインターフェイスの代わりに属性を使用することをお勧めします。 –