3.0 出现的匿名类与var

如下: C#是强类型语言,编译时决定了类型,object 决定了它没有ID属性,运行时确实有但是 ,编译器不认可

 object obj = new
            {
                Id = 1,
                Name = "哈哈哈",
                age = 25
            }

            //Console.WriteLine(obj.Id);
            //Console.WriteLine(obj.Name);

4.0出现的动态类型 dynamic 关键字可以避过编译器 ,--4.0出现的动态类型 dynamic


            dynamic obj1 = new
            {
                Id = 1,
                Name = "哈哈哈",
                age = 25
            }

            Console.WriteLine(obj1.Id);
            Console.WriteLine(obj1.Name);
            obj1 .Study()
            //可以瞎写,但是在运行时,没有 Study方法会报错

var:自动推测类型,还附有智能提示


            var obj1 = new
            {
                Id = 1,
                Name = "哈哈哈",
                age = 25
            }

            Console.WriteLine(obj1.Id);
            Console.WriteLine(obj1.Name);
            //可以瞎写,但是在运行时,没有 Study方法会报错

智能提示:

匿名类,编译器会自动分配名字,将鼠标放到 变量上就可以看见,带特殊字符的类名 'a

另外:匿名类的属性是只读的,在初始化以后就不能改了:

反编译工具:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值