class A<T>where T:new()是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了class A<T>where T:new()是啥意思相关的知识,希望对你有一定的参考价值。

同题,另外还有void F3 <T>(T t) where T:A是什么意思?那个where有什么用的?请大家帮帮忙,我刚C#入门比较的迷茫啊

这是C#泛型类声明的语法

class A<T> 表示 A类接受某一种类型,泛型类型为T,需要运行时传入。

where表明了对类型变量T的约束关系。

where T:new()指明了创建T的实例时应该具有构造函数。

一般情况下,无法创建一个泛型类型参数的实例。然而,new()约束改变了这种情况,要求类型参数必须提供一个无参数的构造函数。

扩展资料:

C#中其他字符的意义:

params:声明一个参数数组。如果使用,必须修改指定的最后一个参数,允许可选参数。

readonly:标识一个变量的值在初始化后不可修改。

ref:标识一个参数值可能会受影响的参数。

sealed:防止类型被派生,防止方法和property被覆载。

sizeof:一个操作符,以byte为单位返回一个值类型的长度。

stackalloc:返回在堆上分配的一个内存块的指针。

struct:是一种值类型,可以声明常量、字段、方法、property、索引器、操作符、构造器和内嵌类型。

throw:抛出一个异常。

try:异常处理代码块的组成部分之一。try代码块包括可能会,抛出异常的代码。参阅catch和finally关键字。

typeof:一个操作符,返回传入参数的类型。

unchecked:禁止溢出检查。

unsafe:标注包含指针操作的代码块、方法或类。

参考资料来源:百度百科-c#

参考技术A where表明了对类型变量T的约束关系。where T: A表示类型变量是继承于A的,或者是A本身。where T:new()指明了创建T的实例时应该使用的构造函数。本回答被提问者采纳 参考技术B 这是C#泛型类声明的语法
class A<T> 表示 A类接受某一种类型,泛型类型为T,需要运行时传入
where表明了对类型变量T的约束关系。where T:new()指明了创建T的实例时应该具有构造函数。一般情况下,无法创建一个泛型类型参数的实例。然而,new()约束改变了这种情况,要求类型参数必须提供一个无参数的构造函数。

以上是关于class A<T>where T:new()是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

(C#) 如class Demo<T,V> where T:这里如何约束T只能是枚举类型

泛型中Where T:Class和Where T:new()的使用与区别

“where T : class, new()”是啥意思?

通用约束,其中 T : struct 和 where T : class

c语言实验三

where T : class泛型类型约束