ASP.NET MVC—1、前期知識儲備(C#3.0新特性)

來源:互聯網
上載者:User

標籤:

    在學習ASP.NET MVC之前,有必要先瞭解一下C#3.0所帶來的新的文法特性,這一點尤為重要,因為在MVC項目中我們利用C#3.0的新特性將會大大的提高我們的開發效率,同時,在MVC項目中你將到處可以看到C#3.0新特性的身影。

C#3.0新特性
  • 自動屬性
  • 隱式類型 var
  • 對象初始化器與集合初始化器
  • 匿名類
  • 擴充方法
  • Lambda運算式
自動屬性

這個概念很簡單,其簡化了我們在.NET的時候手寫一堆私人成員+屬性的編程方式,我們只需要使用如下方式聲明一個屬性,編譯器會自動產生所需的成員變數。

 基本用法:

 public class User     {        public int Id { get; set; }        public string Name { get; set; }        public int Age { get; set; }        public Address Address { get; set; }     }

在C#3.0之前,我們是這樣來實現屬性的:

 private int id;        public int Id        {            get            {                return id;            }            set            {                id = value;            }        }
隱式推斷類型

這個名稱可能對你很陌生,但是var這個關鍵字應該都用過,在C#中使用var聲明一個對象時,編譯器會自動根據其指派陳述式推斷這個局部變數的類型。賦值以後,這個變數的類型也就確定而不可以再變更。另外var關鍵字也用於匿名類的聲明。

應用場合:var主要用途是表示一個LINQ查詢的結果。這個結果可能是ObjectQuery<>或IQueryable<>類型的對象,也可能是一個簡單的實體類型的對象。這時使用var聲明這個對象可以節省很多代碼書寫上的時間。

var customer = new Customer();

對象初始化器

在.NET2.0中構造一個對象的方法一是提供一個重載的建構函式,二是用預設的建構函式產生一個對象,然後對其屬性進行賦值。在.NET3.5/C#3.0中我們有一種更好的方式來進行對象的初始化。那就是使用對象初始化器。這個特性也是匿名類的一個基礎,所以放在匿名類之前介紹。

基本用法:

  User user = new User { Id = 1, Name = "Zouqj", Age = 26 };

匿名類

有了前文初始化器的介紹,匿名類就很簡單了。我們可以使用new { object initializer }或new[]{ object, …}來初始化一個匿名類或不確定類型的數組。匿名類的對象需要使用var關鍵字聲明。範例程式碼:

var p = new { Id = 1, Name = " Zouqj ", Age = 26 };

應用場合:

    當直接使用select new { object initializer }這樣的文法就是將一個LINQ查詢的結果返回到一個匿名類中。

Lambda運算式

     Lambda運算式的本質就是匿名函數,Lambda運算式基於數學中的λ演算得名,直接對應於其中的lambda抽象(lambda abstraction),是一個匿名函數,即沒有函數名的函數。

  delegate int AddDel(int a,int b); //定義一個委託            #region lambda            AddDel fun = delegate(int a, int b) { return a + b; }; //匿名函數            //Console.WriteLine(fun(1, 3));            //lambda  參數類型可以進行隱式推斷,可以省略類型 lambda本質就是匿名函數            AddDel funLambda = ( a,  b) => a + b;            List<string> strs = new List<string>() {     "1","2","3"                                };            var temp = strs.FindAll(s => int.Parse(s) > 1);            foreach (var item in temp)            {                Console.WriteLine(item);            }            //Console.WriteLine(funLambda(1,3));            #endregion

ASP.NET MVC—1、前期知識儲備(C#3.0新特性)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.