繁体   English   中英

在 C# 中定义有界泛型类型参数

[英]Defining bounded generic type parameter in C#

在 Java 中,可以绑定泛型类型的类型参数。 可以这样做:

class A<T extends B> {
    ...
}

因此,A 的这个泛型类的类型参数应该是 B 或 B 的子类。

我想知道 C# 是否有类似的功能。 如果有人让我知道,我很感激。

谢谢

在 C# 中相同的是:

class A<T> where T : B
{

}

另请参阅“类型参数的约束” (msdn),以获得对约束的总体概述。

非常相似:

public class A<T> where T : B
{
    // ...
}

这可用于将 T 约束为 B 的子类或实现(如果 B 是接口)。

此外,您可以将 T 约束为引用类型、值类型或需要默认构造函数:

where T : class     // T must be a reference type
where T : struct    // T must be a value type
where T : new()     // T must have a default constructor

当然可以:

class A<T> where T: B
{
    // ...
}

是的,您可以这样做,这称为类型约束。 这里有一篇文章解释了如何:

http://msdn.microsoft.com/en-us/library/d5x73970.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM