程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> LINQ體驗(3)——C# 3.0新語言特性和改進(下篇)

LINQ體驗(3)——C# 3.0新語言特性和改進(下篇)

編輯:關於ASP.NET

上一篇我們介紹了C# 3.0新語言特性和改進上部分,這篇我們繼續介紹剩下 的部分。

C# 3.0新語言特性和改進包括:

自動屬性(Auto- Implemented Properties)

隱含類型局部變量(Local Variable Type Inference)

匿名類型(Anonymous Types)

對象與集合初始化器 (Object and Collection Initializers)

擴展方法(Extension Methods)

Lambda表達式和Lambda表達式樹 (Lambda Expression and Lambda Expression Trees)

擴展方法(Extension Methods)

往往我們 需要對CLR類型進行一些操作,但苦於無法擴展CLR類型的方法,只能創建一些 helper方法,或者繼承類。我們來修改上面的User類:

public class User
{
  public int Id { get; set; }
  public string Name { get; set; }
  public int Age { get; set; }
  public string Read()
  {
    return "Id:" + Id + "姓名:" + Name + "年齡:" + Age;
  }
}

然後調用

var user = new { Id = 1, Name = "YJingLee", Age = 22 };
var str = user.Read();

現在有了擴展方法就方便多了。

擴展方法允許 開發人員往一個現有的CLR類型的公開契約(contract)中添加新的方法,而不用 生成子類或者重新編譯原來的類型。擴展方法有助於把今天動態語言中流行的對 duck typing的支持之靈活性,與強類型語言之性能和編譯時驗證融合起來。——引用Scott博文

擴展方法是可以通過使用實例方法語法調 用的靜態方法。效果上,使得附加的方法擴展已存在類型和構造類型成為可能。他可以對現有類功能進行擴充,從而使該類型的實例具有更多的方法(功能)。

擴展方法允許我們在不改變源代碼的情況下擴展(即添加不能修改)現 有類型中的實例方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved