我有以下類一個通用的基類的方法的參數
public class A<T>
{
}
public class B<T> : A<T>
{
}
public class C1 : B<string>
{
}
public class C2 : B<int>
{
}
我想什麼向,是具有可以從B<T>
派生的任何類,像C1
或C2
的方法作爲參數。但聲明的方法
public void MyMethod(B<T> x)
不起作用,它產生的編譯器錯誤
錯誤CS0246:類型或命名空間名稱'T」找不到。你是否缺少using指令或程序集引用? (CS0246)
我很困在這裏。爲B<T>
創建非泛型基類將不起作用,因爲我無法從A<T>
那樣派生。我能想到的唯一(醜陋的)解決方案是定義一個由B<T>
「實施」的空虛擬接口。有沒有更優雅的方式?
真棒。我知道它會起作用,如果我使這個方法是通用的,但我認爲我必須在明確調用時指定類型。 非常感謝。 – mat