• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • C#3.0與LINQ新特性簡介

    發表于:2008-05-07來源:作者:點擊數: 標簽:LINQ特性簡介
    簡介 本文主要是關注于LINQ——我認為是VS2008(.NET3.5)中最令人興奮的特性。LINQ使查詢成為了.NET中頭等的編程概念,被查詢的數據可以是XML(LINQ to XML)、Databases(LINQ to SQL 、LINQ to Dataset、LINQ to Entities)和對象(LINQ to Objects)。LIN
    簡介

      本文主要是關注于LINQ——我認為是VS2008(.NET3.5)中最令人興奮的特性。LINQ使查詢成為了.NET中頭等的編程概念,被查詢的數據可以是XML(LINQ to XML)、Databases(LINQ to SQL、LINQ to Dataset、LINQ to Entities)和對象(LINQ to Objects)。LINQ也是可擴展的,允許你建立自定義的LINQ數據提供者(比如:LINQ to Amazon、LINQ to NHibernate、LINQ to LDAP)。

      在這里我會討論C#3.0中的一些新的語言特性和改進,正是它們使得LINQ變得如此強大,讓你可以寫出這樣的代碼:
    var result = from c in Customers where c.City == Boston" orderby c.LastName descending select new { c.FirstName, c.LastName, c.Address };
      記住,如果你想要使用LINQ,你需要安裝Visual Studio 2008(.NET3.5)。
     
      新的語言特性

      I/ 自動屬性
    public class Point { private int _x, _y; public int X { get { return _x; } set { _x = value; } } public int Y { get { return _y; } set { _y = value; } } }
      上面的代碼簡單的定義了一個擁有兩個屬性的類?,F在,使用VS2008中的C#編譯器,我們就可以用自動屬性寫的更簡單,它能自動的生成帶有get/set操作的私有域。
    public class Point { public int X { get; set; } public int Y { get; set; } }
      上面的代碼可讀性更好并且簡潔。
      (這個特性和LINQ還沒有關系)

      II/ 局部變量類型

      使用這個特性,聲明一個局部變量,它的具體類型是通過初始化表達式來推斷。這點是通過var關鍵詞完成的(這個使用腳本語言的人應該很熟悉,但它們實際上是有很大區別的)。我們可以寫出如下的代碼:
    var num = 50; var str = "simple string"; var obj = new myType(); var numbers = new int[] {1,2,3}; var dic = new Dictionary<int,myType>();
      編譯器會生成IL中間代碼,就如同我們編譯了下面的代碼:
    int num = 50; string str = "simple string"; myType obj = new myType(); int[] numbers = new int[] {1,2,3}; Dictionary<int,myType> dic = new Dictionary<int,myType>();
      注意,這里并不存在無類型的變量,也沒有推遲類型的綁定。編譯器是從右邊的賦值語句來自動推斷和聲明變量的類型的,var關鍵詞是一個強類型的變量引用。
      III/ 對象初始化和集合初始化

      我們繼續使用上面的Point類。假設我們想要這個類的一個實例,我們會建立對象并設置它的屬性,代碼會是這樣子的:
    Point p = new Point(); p.X = 0; p.Y = 0;

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>