public class Assemble where T:new()

这句话的意思是声明了一个叫做Assemble<T>的泛型类,然后T的限制为必须要有一个无参构造器。

public class Assemble<T> where T:new()
{
public string SayHello<T> (T object)
{
T ass=new T();
return ass.ToString();
}
}

public class legal
{
public legal()
{}
}

public class notlegal
{
public notlegal(string someting)
{}
}

当声明Assemble<legal> ass=new Assemble<legal>();时相当于声明了一个Assemble<T>,其中第一个代码端中的T全部替换为legal。当声明Assemble<notlegal> ass=new Assemble<notlegal>();时,由于Assemble<T>中T要求必须具有无参构造器,所以,这句话会报错。

你可能感兴趣的:(public)