gpt4 book ai didi

c# - 类常量JAVA到C#的实现

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:59 26 4
gpt4 key购买 nike

Java 实现:

我有这个抽象类:

public abstract class Base<T> {}

和派生:

public class MyClass<W extends Base> {}  //Compiles and works just fine

注意:在 JAVA 中,当将 Base 声明为约束时,我不需要将泛型类型添加到 Base。

.Net实现

public class MyClass<W> where W : Base  //Doesn't compile
public class MyClass<W> where W : Base<T> //Doesn't compile - (what is T ?)

我需要能够在不指定泛型类型的情况下将泛型类声明为约束(就像在 JAVA 中一样)我可以在 .Net 中这样做吗???

最佳答案

您需要在泛型类型参数列表中包含 T:

public class MyClass<W, T> where W : Base<T>

用法:

var myObject = new MyClass<ClassExtendingBase, string>();

public abstract class Base<T> { }

public class ClassExtendingBase : Base<string> { }

关于c# - 类常量JAVA到C#的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6916460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com