假設我有一個空接口類IBaseInterface,它僅用於將實現類「標記」爲接口本身。聲明實現通用接口的C#類
有沒有辦法做到這樣的事情?
例如:
public class MyClass : T where T : IBaseInterface
{
}
假設我有一個空接口類IBaseInterface,它僅用於將實現類「標記」爲接口本身。聲明實現通用接口的C#類
有沒有辦法做到這樣的事情?
例如:
public class MyClass : T where T : IBaseInterface
{
}
不,你不能這樣做,因爲編譯器必須知道在聲明類時該類實現的是哪個接口。你可以有通用參數到的接口,但實際的接口必須指定。
不是那樣的,沒有。我強烈建議使用構圖模式來嘗試並實現您嘗試的任何內容。作爲替代,您可能會發現DynamicProxy(或其他代理解決方案)就是您要做的。
你聲明的類型甚至不是通用的。事情是這樣的:
class MyClass<T> : T where T : IBaseInterface
可能在某些情況下工作(例如,如果C++模板來代替淨仿製藥),但它根本就不是有效的C#代碼。
我不知道什麼是用於「標籤」,但接口與屬性
ClassType ClassType { get; }
其中 ClassType
是enum
可以工作。
泛型類型如何工作? – BoltClock
在.NET中,如果您只想爲特定行爲標記/標記類,則最好使用屬性而不是空接口。 –