猿问

C# 如何理解如下泛型约束 class A<T>:where T:class{}

如题
c#中一个类继承class是什么含义?如
publicclassA:class{
}
更新
谢谢@边城狂人,问题的由来是这样的,我在某个地方看到过一段代码,大体是:
publicclassAwhereT:class
{
}
我将这个泛型约束理解成了普通的类继承,所以才提出上面错误的问题。
@HSFZXJY我不认为这是一个特别基础的问题,sf上不应该只是写高冷的文章和问答,基础的问题不应该被忽视。
问题重新修改为:如何理解泛型类的如下约束?
publicclassAwhereT:class
{
}
UYOU
浏览 476回答 2
2回答

MM们

泛型约束就好说了嘛,在泛型类型定义之后(class中或者method中)使用where约束泛型类型,有点像继承的语法。可以直接参考微软的类型参数的约束(C#编程指南)约束说明whereT:struct类型参数必须是值类型。可以指定除Nullable以外的任何值类型。有关更多信息,请参见使用可以为null的类型(C#编程指南)。whereT:class类型参数必须是引用类型;这一点也适用于任何类、接口、委托或数组类型。whereT:new()类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时,new()约束必须最后指定。whereT:类型参数必须是指定的基类或派生自指定的基类。whereT:类型参数必须是指定的接口或实现指定的接口。可以指定多个接口约束。约束接口也可以是泛型的。whereT:U为T提供的类型参数必须是为U提供的参数或派生自为U提供的参数。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答