C# 匿名类的初始化块就是它的构造函数

匿名类形式一般如下:

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测试结果:报错,不具有公共无参构造函数

 

posted @ 2021-02-09 08:05  温故纳新  阅读(231)  评论(0编辑  收藏  举报