深入學習C#系列文章01---C#3 革新寫代碼的新方式

    C#3 幾乎所有的新特性都是爲LINQ服務的,但他們單獨使用也非常有用,接下來我們來簡單看看C#3 的幾個新特性吧。

一、自動實現的屬性-----編寫由字段直接支持的簡單屬性,不再顯得臃腫不堪。

      之前寫屬性時是大至是這樣:

private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

    有了自動屬性後是這樣子的:

public string Name { get; set; }

    在C#3中還是可以使用之前字段和屬性的寫法,主要是因爲有些字段的值在要在get,set中進行控制,但大多數屬性還是沒有控制的,所以用自動屬性更方便。

二、隱式類型的局部變量-----根據初始值推斷變量的類型,從而簡化局部變量的聲明。

1、寫法

如果要使用隱式類型,唯一要做的就是將普通局部變量聲明中的類型名稱替換爲var

var args = Environment.GetCommandLineArgs();

 

三、對象和集合初始化程序-----用一個表達就能輕鬆的創建和初始化對象。

現在有一個對象

public class Person
{
    public int Age { get; set; }
    public string Name { get; set; }
    public Person() { }
    public Person(string name) { }
}

在C#3之前可以採用如下兩種方式初始化:

  //方法一:直接使用無參構造函數,然後設置這兩個屬性
  Person person = new Person();
  person.Age = 10;
  person.Name = "andy";

  //方法二:使用有參的構造函數
  Person person2 = new Person("andy");
  person2.Age = 20;

C#3之後又多瞭如下三種方式:

 //方法一
 Person person1 = new Person() { Age = 1, Name = "andy" };
 //方法二
 Person person2 = new Person { Age = 2, Name = "andy" };
 //方法三
 Person person3 = new Person("andy") { Age = 3 };

 

四、隱式類型的數組-----根據內容推斷數組的類型,從而簡化數組的創建表達式。

有這樣一個方法:

 

public string getPerson(string[] nameArry)
{
    return nameArry[0];
}

 

C#3之前的寫法:

 getPerson(new string[] {"andy","tom"});

 

C#3又多了一種寫法:

getPerson(new[] { "andy", "tom" });

 

五、匿名類型-----允許你創建新的“臨時”類型來包含簡單的屬性。

匿名類型服務一個更高的目標----linq

var tom = new { age = 10, name = "andy" };
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章