c 擴充套件方法的理解

2021-09-27 06:24:43 字數 1024 閱讀 8926

擴充套件方法是靜態方法,是類的一部分,但是實際上沒有放在類的源**中。

擴充套件方法所在的類也必須被宣告為static

c#只支援擴充套件方法,不支援擴充套件屬性、擴充套件事件等。

擴充套件方法的第乙個引數是要擴充套件的型別,放在this關鍵字的後面,告訴編譯期這個方法是money型別的一部分。

在擴充套件方法中,可以訪問擴充套件型別的所有公共方法和屬性。

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

這是msdn上說的,也就是你可以對string,int,datarow,datatable等這些型別的基礎上增加乙個或多個方法,使用時不需要去修改或編譯型別本身的**。

class program

}public class money

set}

public override string tostring()

}public static class moneyextension

}

namespace extensioninte***cemethod

}//先建立乙個簡單的介面

public inte***ce ibasicinte***ce

//建立乙個實現該介面的類

public class basicimplement : ibasicinte***ce

#endregion

}}

如果想要為該介面ibasicinte***ce增加乙個相減的subtract方法,在擴充套件方法中新定義乙個subtract方法。

namespace extensioninte***cemethod

}

因為是介面擴充套件方法,所以不打算為這個擴充套件方法提供任何**實現。

編譯時執行報錯,解決方法,在介面擴充套件方法中實現**。

namespace extensioninte***cemethod

}}

C 擴充套件方法的理解

c 擴充套件方法的理解 擴充套件方法使您能夠向現有型別 新增 方法,而無需建立新的派生型別 重新編譯或以其他方式修改原始型別。這是msdn上說的,也就是你可以對string,int,datarow,datatable等這些型別的基礎上增加乙個或多個方法,使用時不需要去修改或編譯型別本身的 先做個例子...

C 擴充套件方法的理解

擴充套件方法使您能夠向現有型別 新增 方法,而無需建立新的派生型別 重新編譯或以其他方式修改原始型別。這是msdn上說的,也就是你可以對string,int,datarow,datatable等這些型別的基礎上增加乙個或多個方法,使用時不需要去修改或編譯型別本身的 先做個例子吧,以string為例,...

C 擴充套件方法的理解

擴充套件方法使您能夠向現有型別 新增 方法,而無需建立新的派生型別 重新編譯或以其他方式修改原始型別。這是msdn上說的,也就是你可以對string,int,datarow,datatable等這些型別的基礎上增加乙個或多個方法,使用時不需要去修改或編譯型別本身的 先做個例子吧,以string為例,...