这个定义的是什么意思?

时间:2021-11-10 03:58:14
private T OpenUniqueMDIChildWindow<T>(Form mdiParent) where T : Form, new()
        }
这个定义是什么意思,能解释详细一点吗?

6 个解决方案

#1


泛型方法,返回一个Form的子类型对象,并且这个子类型具有无参构造函数。

#2


例如给你个简单例子
如果给0,则返回默认值,值类型和引用类型不同。反之返回新对象
public T GetValue<T>(int i) where T:new()
{
    if(i == 0) return default(T);
    else return new T();
}
调用为:
Form result = GetValue<Form>(0);

#3


泛型及泛型约束...最好去看MSDN...

这个方法表示返回值可以是派生自Form且具有无参构造函数(默认构造函数)的任意类...只可惜加上这些约束就变成垃圾代码了,根本无必要用泛型...

#4


模板类 也叫泛型

#5


where T:
泛型约束,约束类型T必须具有无参的构造函数
表示T必须是class类型或它的派生类。
new()构造函数约束允许开发人员实例化一个泛型类型的对象。  
一般情况下,无法创建一个泛型类型参数的实例。然而,new()约束改变了这种情况,要求类型参数必须提供一个无参数的构造函数。  
在使用new()约束时,可以通过调用该无参构造函数来创建对象。  
基本形式: where T : new()  
 

#6


引用 5 楼 wuyq11 的回复:
where T:
泛型约束,约束类型T必须具有无参的构造函数
表示T必须是class类型或它的派生类。
new()构造函数约束允许开发人员实例化一个泛型类型的对象。  
一般情况下,无法创建一个泛型类型参数的实例。然而,new()约束改变了这种情况,要求类型参数必须提供一个无参数的构造函数。  
在使用new()约束时,可以通过调用该无参构造函数来创建对象。  
基本形式: where……


说的很详细了.

#1


泛型方法,返回一个Form的子类型对象,并且这个子类型具有无参构造函数。

#2


例如给你个简单例子
如果给0,则返回默认值,值类型和引用类型不同。反之返回新对象
public T GetValue<T>(int i) where T:new()
{
    if(i == 0) return default(T);
    else return new T();
}
调用为:
Form result = GetValue<Form>(0);

#3


泛型及泛型约束...最好去看MSDN...

这个方法表示返回值可以是派生自Form且具有无参构造函数(默认构造函数)的任意类...只可惜加上这些约束就变成垃圾代码了,根本无必要用泛型...

#4


模板类 也叫泛型

#5


where T:
泛型约束,约束类型T必须具有无参的构造函数
表示T必须是class类型或它的派生类。
new()构造函数约束允许开发人员实例化一个泛型类型的对象。  
一般情况下,无法创建一个泛型类型参数的实例。然而,new()约束改变了这种情况,要求类型参数必须提供一个无参数的构造函数。  
在使用new()约束时,可以通过调用该无参构造函数来创建对象。  
基本形式: where T : new()  
 

#6


引用 5 楼 wuyq11 的回复:
where T:
泛型约束,约束类型T必须具有无参的构造函数
表示T必须是class类型或它的派生类。
new()构造函数约束允许开发人员实例化一个泛型类型的对象。  
一般情况下,无法创建一个泛型类型参数的实例。然而,new()约束改变了这种情况,要求类型参数必须提供一个无参数的构造函数。  
在使用new()约束时,可以通过调用该无参构造函数来创建对象。  
基本形式: where……


说的很详细了.