c#中new()约束符有什么作用?
发布网友
发布时间:2022-04-25 20:39
我来回答
共5个回答
热心网友
时间:2022-06-17 05:46
第一:where只用于泛型,所以应该是:
public class BaseClass<T> where T : new()
{
public T SomeMethod()
{
return new T();
}
}
第二:
where T : new()的意思是,这个T必须有public构造函数,如果new BaseClass<T>()的时候,这个T没有public 构造函数,将编译错误.
第三:
除了new(),where后面可以有好多种内容,去约束T.
比如:public class MyGenericClass<T> where T:IComparable { }等.
详情见:
http://msdn.microsoft.com/en-us/library/d5x73970.aspx
参考资料:http://msdn.microsoft.com/en-us/library/d5x73970.aspx
热心网友
时间:2022-06-17 05:47
这个是肯定上面已经定义这个new了,这个算是继承吧,继承new的东西
热心网友
时间:2022-06-17 05:47
这个规定了T的类型必须要有一个无参的公有的构造方法.
不过你这类的签名是不是有问题?
BaseClass<T> where T : new()
应该是这样.
看下楼上给的MSDN地址吧,讲的比较细.
"The type argument must have a public parameterless constructor. When used together with other constraints, the new() constraint must be specified last."
这句我给你翻译下吧...有很多程序员不懂英语的..
"类型参数必须有一个公有的,无参数的构造方法.当和别的约束一起使用的时候,new()约束必须放在最后"
热心网友
时间:2022-06-17 05:48
没见过这种写法!
热心网友
时间:2022-06-17 05:48
new()是基类吗,是的话去看new()的定义就知道了
c#中new()约束符有什么作用?
public T SomeMethod(){ return new T();} } 第二:where T : new()的意思是,这个T必须有public构造函数,如果new BaseClass<T>()的时候,这个T没有public 构造函数,将编译错误.第三:除了new(),where后面可以有好多种内容,去约束T.比如:public class MyGenericClass<T> where T:IComparable {...
c# new有什么用?
(1)new 修饰符 用于隐藏基类成员的继承成员。(2)new 运算符 用于创建对象和调用构造函数。(3)new 约束 用于在泛型声明中约束可能用作类型参数的参数的类型。【new 修饰符】使用 new 修饰符显式隐藏从基类继承的成员。若要隐藏继承的成员,请使用相同名称在派生类中声明该成员,并用 new 修饰符修饰...
C#编程中的 New 关键词的几种用法
(1)new 运算符 用于创建对象和调用构造函数。(2)new 修饰符 用于隐藏基类成员的继承成员。(3)new 约束 用于在泛型声明中约束可能用作类型参数的参数的类型。new 运算符1.用于创建对象和调用构造函数例:Class_Test MyClass =new Class_Test();2.也用于为值类型调用默认的构造函数例:int myInt = ...
C#编程中的 New 关键词的几种用法[1]
( )new 运算符 用于创建对象和调用构造函数 ( )new 修饰符 用于隐藏基类成员的继承成员 ( )new 约束 用于在泛型声明中约束可能用作类型参数的参数的类型 new 运算符 用于创建对象和调用构造函数 例 Class_Test MyClass = new Class_Test();也用于为值类型调用默认的构造函数 例 int myInt = new...
class A<T>where T:new()是什么意思
这是C#泛型类声明的语法 class A<T> 表示 A类接受某一种类型,泛型类型为T,需要运行时传入。where表明了对类型变量T的约束关系。where T:new()指明了创建T的实例时应该具有构造函数。一般情况下,无法创建一个泛型类型参数的实例。然而,new()约束改变了这种情况,要求类型参数必须提供一个无参数的...
请教一个unity有关于泛型参数的问题
约束 说明 T:结构 类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型。有关更多信息,请参见使用可空类型(C# 编程指南)。T:类 类型参数必须是引用类型,包括任何类、接口、委托或数组类型。T:new()类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时,new() 约束必须最后...
C#本质论的C#本质论(第3版)
11.3.3 struct/class约束 33211.3.4 多个约束 33311.3.5 构造器约束 33411.3.6 约束继承 33411.4 泛型方法 33911.4.1 类型推断 34011.4.2 约束的指定 34111.5 协变性和逆变性 34211.5.1 在C# 4.0中使用out类型参数修饰符允许协变性 34311.5.2 在C# 4.0中使用in类型参数修饰符允许逆变性 34511.5.3 数组的...
测试中经常使用到数据库,请问数据库中字段类型和约束有什么作用?
约束:①.作用: 保证数据的完整性,对字段中的数据进行限制和约束 ②.分类: primary key 主键 (表示唯一一行记录)not null (不能为空)unique 唯一值约束, 不允许重复 default 默认值约束 foreign key 外键约束 说明: 对于字段来说, 数据类型必须要有, 但是约束可以没有 举例: 字段名 数据类型 ...
谁给简单介绍一下C#?
而这种实现方式决定了基于MSIL的程序(指的是用C#,Visual Basic,"Managed C++"--C++的一个符合CLS的版本--等语言编写的程序)将在性能上超过"解释性的"Java代码.当然,这一点还需要得到事实证明,因为C#和其他生成MSIL的编译器还没有发布.但是Java JIT编译器的普遍存在使得Java和C#在性能上相对相同.象"C#是编译...
,net面试题的机试一般是考什么啊
1.new有几种用法 第一种:new Class();第二种:覆盖方法 public new XXXX(){} 第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。2.如何把一个array复制到arrayList里 foreach( object o in array )arrayList.Add(o);3.datagrid.datasouse可以连接什么数据源 [dataset...