匿名類與擴展方法

推斷類型

var可以根據變量的初始值自動推斷局部變量的類型

  1. var只能定影局部變量,而不能定義成員變量

  2. 定義的時候必須同時完成初始化,而不能使用var定義變量爲NULL

  3. var本身並不是一種新的類型,只是用來修飾一個可推斷出具體類型的局部變量

var定義變量和object類型定義的區別

 

匿名類

什麼是匿名類

 static void Main(string[] args)
        {
            var objPerson = new { 
                Name="小明",
                Age=20,
                ClassName="C#"
            };
            Console.WriteLine("有一個學生叫{0},班級是{1}",objPerson.Name,objPerson.ClassName);
            Console.ReadLine();
        }

 

特點:

  1. 直接使用var關鍵字聲明,並且使用new關鍵字創建對象

  2. 不需要提前編寫類的成員,並且只能添加對象的屬性

擴展方法

擴展方法定義

  1. 擴展方法必須在靜態類中定義

  2. 擴展方法是一種特殊的靜態方法

  3. 第一個參數前必須加關鍵字this,this後面的這個數據類型不是參數類型,這個類型代表這個方法是給哪個對象擴展的

  4. 參數的命名錶示當前變量

   public static int Calc(this Student stu,int a,int b)
        {
            return a + b;
        }
 Student stu = new Student() { Name = "張三", Age = 20 };
            Console.WriteLine("3+5="+ stu.Calc(3,5));
            Console.ReadLine();

 

不帶參數的擴展方法

static 方法名 (this 目標類型 目標類型參數){}

  帶參數的擴展方法

static 方法名(this 目標類型 目標類型參數 ,參數1,參數2){}

擴展方法注意

  1. 擴展方法必須定義在靜態類中,擴展方法本身也是靜態方法

  2. 如果擴展方法和對應的類位於不同的命名空間,使用時應引入擴展方法所在的靜態類的命名空間

  3. 當類本身的方法與擴展方法重名時,類本身的方法是被優先調用的

  4. 擴展方法不要過多使用

  5. 擴展方法也支持重載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章