C 高階功能(四)擴充套件方法和索引

2021-08-28 08:37:21 字數 1089 閱讀 7046

擴充套件方法使你能夠向現有型別「新增」方法,而無需建立新的派生型別、重新編譯或以其他方式修改原始型別。

擴充套件方法是一種特殊的靜態方法,但可以像擴充套件型別上的例項方法一樣進行呼叫。擴充套件方法被定義為靜態方法,但它們是通過例項方法語法進行呼叫的。  它們的第乙個引數指定該方法作用於哪個型別,並且該引數以 this 修飾符為字首。  僅當你使用using指令將命名空間顯式匯入到源**中之後,擴充套件方法才位於範圍中。

最常見的擴充套件方法是 linq 標準查詢運算子,它將查詢功能新增到現有的 system.collections.ienumerable

和 system.collections.generic.ienumerable型別。

若要使用標準查詢運算子,請先使用 using system.linq 指令將它們置於範圍中。

在 ienumerable型別的例項後鍵入「.」時,可以在 intellisense 語句完成中看到這些附加方法。

int ints = ;

var result = ints.orderby(x=> x);

public static class myextensions

}

索引器允許類或結構的例項就像陣列一樣進行索引。 索引器類似於屬性,不同之處在於它們的取值函式採用引數。

索引器概述

使用索引器可以用類似於陣列的方式為物件建立索引。

get 取值函式返回值。 set 取值函式分配值。

this 關鍵字用於定義索引器。

value 關鍵字用於定義由 set 索引器分配的值。

索引器不必根據整數值進行索引;由你決定如何定義特定的查詢機制。

索引器可被過載。

索引器可以有多個形參,例如當訪問二維陣列時。

class samplecollection set  }

public string this[string s] }

}class program

} // output:

//hello, world.

// hello, world.

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

1 它必須在乙個非巢狀的,非泛型的靜態類中 2 它至少有乙個引數 3 第乙個引數必須加上this關鍵字作為字首 4 第乙個引數不能有任何其他的修飾符 比如out或ref 5 第乙個引數的型別不能是指標型別 for example public class person 擴充套件方法的建立 publi...

C 學習筆記(三) C 高階特性 擴充套件方法

public static class stringhelper iscapitalized方法像例項方法一樣被string來呼叫,像這樣 console.writeline perth iscapitalized 擴充套件方法被編譯後會被編譯器轉換為普通的靜態類的靜態方法的呼叫,像這樣 conso...

四 C 方法和引數

方法是一種組合一系列語句以執行乙個特定操作或計算乙個特殊結果的方式。它能夠為構成程式的語句提供更好的結構和組織。在物件導向的語言中,方法總是和類關聯在一起的,我們用類將相關的方法分為一組。方法通過引數來用於從呼叫者向目標方法傳遞資料的變數。方法也通過乙個返回值將資料返回給呼叫者 乙個方法呼叫由以下元...