zoukankan      html  css  js  c++  java
  • C#3.0新特性

    今天闲来无事想学习一下3.0开始使用的LINQ to SQL

    但看其相关文章的时候遇到了很多3。0的新特性,罢然,先学习3.0新特性在再学习他了。

    1.隐式类型化本地变量

            就像类似javascript那样,变量无需特制定类型,统一使用使用"var"关键字来声明局部变量,而不再需要指明变量的确切类型了,变量的确切类型可通过声明变量时的初始值推断出来

     例如:var age=15;

                var list=new int[2]{1,2};

       //CLR 会把他们解析成 int age=15;  int[]list=new int[2]{1,2}

    2.匿名类型

          通过匿名类型,我们可以简单使用new { 属性名1=值1, 属性名2=值2, ..... , 属性名n=值n }的形式直接在函数中创建新的类型

                       var person=new {userName="zhangsan",age=18};

                        Console.WriteLine(string.Format("userName:{0}  age:{1}",person.userName,person.age));

                       输出:userName:zhangsan  age:18

    3.隐式类型化数组

                         例:    

             var list = new[] { new { userName = "zhangsan", age = 15 }, new { userName = "lisi", age = 18 } };
                Console.WriteLine(string.Format("{0}的年龄是{1}",list[0].userName,list[0].age));

    4.对象构造

                   

      public class Man

    {

        public string userName { set; get; }//编译器自动为你生成getset操作以及字段,并且你不能使用字段也不能自定义getset操作,不过你可以分别定义getset的访问级别,就好比是个标识 告诉CLR

           public int age { set; get; }

    }

     

       public class Person
        {
               public Man man1{set;get;}

               public Person(){

              man1=new Man();     

            }
        }

      

    public class Test

    {

       static void Main(string[] args)
            {

                          

                var  person = new Person() {  man1 = {userName="lisi",age=122 } };

                Console.WriteLine(string.Format("我叫{0} 年龄{1}",person.man1.userName,person.man1.age));

             //输出我叫lisi  年龄122   

        }

    }

     

                    

  • 相关阅读:
    算法53----换钱的最小次数和方法数【动态规划】
    算法52-----矩阵最小路径【动态规划】
    Data
    Git
    Git
    Git
    Git
    DevOps
    Docker
    Tools
  • 原文地址:https://www.cnblogs.com/zhangqifeng/p/1499444.html
Copyright © 2011-2022 走看看