匿名类形式一般如下:
new {Property1=v1,Property2=v2}; // 其中{}就是匿名类的初始化块,也就是他的构造函数
匿名类的无参构造函数:new {}
实例:
定义一个泛型方法,泛型约束需要具有无参构造函数
public void Run<T>(T obj) where T : new() { Console.WriteLine(obj.GetType().GetProperties().Length); }
测试代码1:使用匿名类 new {}
var t = new _20210209_1(); t.Run(new { });
测试代码1测试结果:程序正常运行
测试代码2:使用匿名类new { Id = 1, Name = "测试2" }
var t = new _20210209_1(); t.Run(new { Id = 1, Name = "测试2" });
测试代码2测试结果:报错,不具有公共无参构造函数