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()的使用与区别