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