我有MyClass<T>
類,其中T
是一些接口:轉換
class MyClass<T> where T: IMyInterface
我寫了幾類,其使用的IMyInterface
一些實施延長MyClass
,例如:
class MySecondClass : MyClass<MyInterfaceImplementation>
爲什麼assignement MySecondClass
實例不允許使用類型爲MyClass<IMyInterface>
的變量?
MyClass<IMyInterface> x = new MySecondClass()
當我添加的隱式轉換:
public static implicit operator MyClass<IMyInterface>(MySecondClass c) {
return c;
}
它開始工作。
需要約束的接口。 'interface IMyClass where T:IMyInterface'。 –
Romoku
@Romoku你不能使用泛型約束與類。僅接口 – Alex