c# 高階應用 理解擴充套件方法

Whpitot發表於2018-03-06

擴充套件方法的特徵

1、它必須在一個非巢狀的,非泛型的靜態類中
2、它至少有一個引數
3、第一個引數必須加上this關鍵字作為字首
4、第一個引數不能有任何其他的修飾符(比如out或ref)
5、第一個引數的型別不能是指標型別

For Example

public Class Person
{
   public void ShowName(string name)
   {
       Console.WriteLine(name);
   }
}
//擴充套件方法的建立
public Static Class ExtendPerson
{
   public Static void ShowAge(this Person person,int age)
   {
       Console.WriteLine(age);
   }
}

//擴充套件方法的使用
Person person = new Person();
person.ShowAge(10);
複製程式碼

.Net3.5中的擴充套件方法

擴充套件方法你能一種自然的方式將靜態方法呼叫連結到一起,主要體現在Queryable,Enumerable中。
For Example

var collection Enumerable.Range(0,9)
                         .Where(x => x % 2 == 0)
                         .Reverse();
foreach(var element in collection)
{
   Console.WriteLine(element);
}
複製程式碼

相關文章