(精华)2020年8月11日 C#基础知识点 匿名类的使用(object,var,dynamic)

#region 3.0出了个匿名类  
                {
                    Console.WriteLine("*****************匿名类**************");
                    Student student = new Student()
                    {
                        Id = 1,
                        Name = "Richard",
                        Age = 25,
                        ClassId = 2
                    };
                    student.Study();
                    //-------------------------匿名类的使用--------------------------
                    object model = new//.net 3.0    
                    {
                        Id = 2,
                        Name = "undefined",
                        Age = 25,
                        ClassId = 2,
                        Teacher = "Richard"
                    };

                    //匿名类无法访问属性值
                    //Console.WriteLine(model.Id); //object中肯定有Id/Name,C#是强类型语言,编译器不认可,;
                    //Console.WriteLine(model.Name);

                    //--------------------------dynamic避开编译器检查 (4.0)-------------------
                    //(动态类型),可以避开编译器的检查
                    dynamic dModel = new//
                    {
                        Id = 2,
                        Name = "undefined",
                        Age = 25,
                        ClassId = 2
                    };

                    dModel.Id = 134;
                    Console.WriteLine(dModel.Id);
                    Console.WriteLine(dModel.Name);
                    // Console.WriteLine(dModel.Js);// 会报异常
                    //----------------------------var 语法糖--------------------------
                    Console.WriteLine("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
                    var model1 = new //不能声明方法
                    {
                        Id = 2,
                        Name = "undefined",
                        Age = 25,
                        ClassId = 2,
                        Teacher = "Richard"
                    };
                    Console.WriteLine(model1.Id);
                    Console.WriteLine(model1.Name);
                    //Console.WriteLine(model1.jk);
                    // model1.Id = 3; // 属性是只读不能修改
                    int i2 = 2;
                    var i1 = 1;//var就是个语法糖,由编译器自动推算
                    var s = "代码男孩";
                    //var声明的变量必须初始化,必须能推算出类型
                }
                #endregion

猜你喜欢

转载自blog.csdn.net/aa2528877987/article/details/107935897