【C# 文法糖】

來源:互聯網
上載者:User

標籤:style   blog   io   ar   color   使用   sp   on   資料   

【C# 文法糖】

 一, 擴充方法

  1. 對某個類功能上的擴充

  2. 特點: 使用方便,可以在不修改原代碼的基礎上進行擴充。 參照 linq,linq 就是一系列的擴充方法

  3. 文法: 非泛型靜態類,靜態方法, 第一個參數加 this,表示是對該類型的擴充

  4. 代碼

  

   public static class Extension    {        private static int _defaultInt = 0;        public static int ToInt(this string str)        {            if (int.TryParse(str,out _defaultInt))            {                return _defaultInt;            }            return 0;        }    }

二, 運算子多載
  1. 文法: 靜態方法, 方法名 operator 加 運算子,參數類型 當前類

  2. 不是很常用

  3. 代碼

  

    public class Operator    {        public int Num { get; set; }        public static int operator +(Operator o1, Operator o2)        {            return o1.Num + o2.Num;        }    }

三,Lambda
  1. Lambda 可以看成是對委託的簡化

  2. 文法 ()=>{...}

  3. Lambda 開始學習時會非常不習慣,但用慣了會非常上癮的。代碼變得更簡潔。另 委託 推薦使用系統定義的 Action 和 Func,不需要自己去定義委託類型

  4. 注意 消極式載入

  5. 代碼

  

  Func<int, int, int> addFunc = (x, y) => x + y;  int i = addFunc(5, 6);

四, Linq
  1. 本質 擴充方法

  2. 使用上 推薦 方法文法 而不是 類sql 文法。方法文法可讀性高,而且更符合 c# 的文法。

  3. 注意 消極式載入

  4. 文法 Linq + Lambda + var , 簡潔而優美

  5. 代碼

  

  List<int> list = new List<int> { 1, 2, 3, 4, 5, 6, 7 };  var v = list.Where(n => n < 3);

五, 匿名型別
  1. 匿名型別 var 

  2. 使用情境 需要修改實體類屬性,但又不想修改原實體類,也不想添加新的實體類,這可以用匿名型別

  3. 特點 靈活

  4. 代碼

  

  Operator op = new Operator { Num = 3 };  var v = new { OP = op, Name = "我是var" };            
  Console.WriteLine(v.OP.Num + v.Name);

 六, 方法參數預設值

  1. 簡化重載, 將多個重載方法合并,減少代碼量

  2. 代碼

  

  private static void Main(string[] args)  
  {
    ShowName();
    ShowName("不是預設");
    Console.ReadLine();
  }  private static void ShowName(string name = "預設名稱")
  {  
    Console.WriteLine(name);  
  }

七, 運算子
  1. 三元 :

    a. 替換簡單的 if else

    b. 文法 Console.WriteLine(i > 0 ? "大於0" : "小於0");

  2. 預設值 :

    a. 參數預設值,用在資料庫非空非常好用

    b. 文法 Console.WriteLine(s ?? "我是預設值");

八, 待續...

 

【C# 文法糖】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.