java - "java wildcard"到 C#?

标签 java c# wildcard

如何将此“java 通配符”转换为 C# 格式?

public abstract class AAA<T extends BBB<?>> extends CCC<T>{} 

我不正确的 C# 代码

public abstract class AAA<T> : CCC<T> where T : BBB<?>{}

如何转换 BBB<?>

最佳答案

有个类似的问题C# generic "where constraint" with "any generic type" definition?不特定于 Java 通配符。那里提供的答案可能会对您有所帮助。

根据该答案,可能的类签名是:

public abstract class AAA<T, TOther> : CCC<T>
    where T : BBB<TOther>
{}

C# 中的泛型必须具有命名类型参数,即使您从未打算显式/隐式使用该类型。并且所有类型参数都必须在方法/类/接口(interface)的标识符声明中命名。

请注意,如果需要,可以将 TOther 限制为仅对象类型:

public abstract class AAA<T, TOther> : CCC<T>
    where T : BBB<TOther>
    where TOther : object
{}

关于java - "java wildcard"到 C#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30179764/

相关文章:

python - 当不需要某些特定的通配符组合时,如何在蛇形中使用扩展?

MySQL如何LIKE匹配参数+通配符?

c# - 为什么只有字符串是不可变的而不是其他数据类型

c# - 无法连接到已配置的开发 Web 服务器

java - 为什么在 put 方法中使用泛型声明 "<? super ArrayList> does not accept value "new Object()"的 HashMap?

java - 如何在PIG拉丁语的平面文件的所有列上使用子字符串操作

c# - 给类点击事件 C#

java - 统计循环中每个字母的出现次数并显示出现次数最多的字母

java - 如何禁用 JavaFX2 TableView 中的列重新排序?

java - HttpUrlConnection 泄漏套接字与 "Can' t 识别协议(protocol)”错误消息 : even after closing input stream and disconnecting socket