如何將此「java通配符」轉換爲C#格式?「java通配符」到C#?
public abstract class AAA<T extends BBB<?>> extends CCC<T>{}
我的不正確的C#代碼
public abstract class AAA<T> : CCC<T> where T : BBB<?>{}
如何轉換BBB<?>
如何將此「java通配符」轉換爲C#格式?「java通配符」到C#?
public abstract class AAA<T extends BBB<?>> extends CCC<T>{}
我的不正確的C#代碼
public abstract class AAA<T> : CCC<T> where T : BBB<?>{}
如何轉換BBB<?>
什麼是BBB
到底是什麼?
我敢打賭,BBB<Object>
可能會工作; BBB
可能是一種協變類型。
還有一個類似的問題C# generic "where constraint" with "any generic type" definition?不是特定於Java通配符。在那裏提供的答案可能會幫助你。
從這個問題的答案,可能的類簽名是:在C#
public abstract class AAA<T, TOther> : CCC<T>
where T : BBB<TOther>
{}
仿製藥必須有一個名爲類型參數,即使你從來沒有打算使用類型明確/含蓄。所有類型參數必須在方法/類/接口的標識符聲明中命名。
注意,如果使用需要的話將有可能約束TOther只是對象類型:
public abstract class AAA<T, TOther> : CCC<T>
where T : BBB<TOther>
where TOther : object
{}
目前根本沒有一個C#等效於此。 –
如果沒有等價物,有什麼用? –
您可以讓BBB類實現非通用接口「YYY」,然後使用「where T:YYY」。 –