private T OpenUniqueMDIChildWindow<T>(Form mdiParent) where T : Form, new()
        }
这个定义是什么意思,能解释详细一点吗?

解决方案 »

  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.   

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