C# 擴(kuò)充方法
Sep 03, 2024 pm 03:32 PM根據(jù)擴(kuò)充的字面意思,附加方法稱為C#擴(kuò)充方法,使用它可以在不做任何更改或繼承或重構(gòu)原始結(jié)構(gòu)、類別或介面的情況下添加附加方法,我們可以添加這樣的擴(kuò)充方法我們創(chuàng)建的自訂類別、.NET 框架的類別或來自第三方或介面的類,這些擴(kuò)展方法可以在整個(gè)程式流程中透過包含定義它們的命名空間來訪問,並且它是靜態(tài)方法靜態(tài)類別中定義的特殊類型。
C# 擴(kuò)充方法的語法
定義命名空間、類別和擴(kuò)充方法。
文法:
namespace namespace_name { public static class class_name { public static bool extension_method_name(parameters_list) { //Blocks of code } } }
其中namespace_name是定義擴(kuò)充方法的命名空間的名稱。
Class_name 是定義擴(kuò)充方法的靜態(tài)類別的名稱。
Extension_method_name 是擴(kuò)充方法的名稱。
參數(shù)列表是參數(shù)列表,第一個(gè)參數(shù)是方法要操作的運(yùn)算子的類型,該運(yùn)算子的前綴為 this 關(guān)鍵字。
C# 擴(kuò)充方法的工作原理
- 擴(kuò)充方法是額外建立的自訂方法,不屬於原始類別的一部分。
- 定義一個(gè)命名空間,在其中定義靜態(tài)類,然後在靜態(tài)類別中定義擴(kuò)充方法。透過使用定義擴(kuò)充方法的命名空間,可以在整個(gè)應(yīng)用程式中使用該方法。
- 擴(kuò)充方法是靜態(tài)類別中定義的靜態(tài)方法的一種特殊情況,其第一個(gè)參數(shù)是要操作的運(yùn)算子的類型,前綴為 this 關(guān)鍵字。
- 擴(kuò)充方法可以包含在.NET框架類別、自訂類別、結(jié)構(gòu)或介面、第三方類別中。
實(shí)作 C# 擴(kuò)充方法的範(fàn)例
以下是 C# 擴(kuò)充方法的範(fàn)例
範(fàn)例#1
C# 程序,示範(fàn)程序中比較兩個(gè)整數(shù)的擴(kuò)充方法:
?代碼:
using System; using System.Text; //a namespace called check is defined namespace check { // a static class called extensionclassmethod is defined public static class extensionmethodclass { //extension method to compare two integers is defined public static bool extensionmethodname(this intstr, intval) { return str>val; } } //a class called check1 is defined class check1 { //main method is called static void Main(string[] args) { intstri = 565; //extension method defined in another static class is called here bool z = stri.myExtensionMethod(200); Console.WriteLine("The result of the comparison is: {0}", z); Console.ReadLine(); } } }
輸出:
說明:在上面的程式中,定義了一個(gè)名為 check 的命名空間。然後定義一個(gè)稱為擴(kuò)展方法類的靜態(tài)類,其中定義了比較兩個(gè)整數(shù)的擴(kuò)展方法。然後定義另一個(gè)名為 check1 的類,即使它是在不同的類別中定義但位於同一命名空間下,也可以在其中新增擴(kuò)充方法。擴(kuò)展方法傳回兩個(gè)整數(shù)的比較結(jié)果??煺盏妮敵鋈缟厦娴目煺账?。
範(fàn)例#2
C# 程式示範(fàn)程式中的 Extension 方法以找出字串的長(zhǎng)度:
?代碼:
using System; using System.Text; //a namespace called check is defined namespace check { // a static class called extensionclassmethod is defined public static class extensionmethodclass { //extension method to find out the length of a string is defined public static intextensionmethodname(this string str) { return str.Length; } } //a class called check1 is defined class check1 { //main method is called static void Main(string[] args) { string stri = "ShobhaShivakumar"; //extension method defined in another static class is called here int z = stri.extensionmethodname(); Console.WriteLine("The length of the string obtained by using extension method is: {0}", z); Console.ReadLine(); } } }
輸出:
說明:在上面的程式中,定義了一個(gè)名為 check 的命名空間。然後定義一個(gè)稱為擴(kuò)展方法類的靜態(tài)類,其中定義了計(jì)算作為參數(shù)傳遞給它的字串長(zhǎng)度的擴(kuò)展方法。然後定義另一個(gè)名為 check1 的類,即使它是在不同的類別中定義但位於同一命名空間下,也可以在其中新增擴(kuò)充方法。擴(kuò)展方法傳回作為參數(shù)傳遞給它的字串的長(zhǎng)度作為結(jié)果。快照的輸出如上面的快照所示。
範(fàn)例#3
代碼:
using System; using System.Text; //a namespace called check is defined namespace check { // a static class called extensionclassmethod is defined public static class extensionmethodclass { //extension method to add two numbers is defined public static intextensionmethodname(this intstr, intval) { return str+val; } } //a class called check1 is defined class check1 { //main method is called static void Main(string[] args) { intstri = 100; //extension method defined in another static class is called here int z = stri.extensionmethodname(200); Console.WriteLine("The result of addition of two numbers obtained by using extension method is: {0}", z); Console.ReadLine(); } } }
輸出:
說明:在上面的程式中,定義了一個(gè)名為 check 的命名空間。然後定義一個(gè)稱為擴(kuò)展方法類的靜態(tài)類,其中定義了將作為參數(shù)傳遞給它的兩個(gè)數(shù)字相加的擴(kuò)展方法。然後定義另一個(gè)名為 check1 的類,即使它是在不同的類別中定義但位於同一命名空間下,也可以在其中新增擴(kuò)充方法。擴(kuò)展方法傳回兩個(gè)數(shù)字相加後的結(jié)果。
結(jié)論
在本教程中,我們透過定義、語法以及程式設(shè)計(jì)範(fàn)例及其輸出來了解 C# 擴(kuò)充方法的概念。
推薦文章
這是 C# 擴(kuò)充方法的指南。在這裡,我們討論 C# 擴(kuò)展方法簡(jiǎn)介及其工作原理以及範(fàn)例和程式碼實(shí)作。您也可以瀏覽我們其他推薦的文章以了解更多資訊 –
- C# 中的隨機(jī)數(shù)產(chǎn)生器
- Java 中的靜態(tài)建構(gòu)子
- C# 中的 TextWriter
- C# 中的靜態(tài)建構(gòu)子
以上是C# 擴(kuò)充方法的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

C# 隨機(jī)數(shù)產(chǎn)生器指南。在這裡,我們討論隨機(jī)數(shù)產(chǎn)生器的工作原理、偽隨機(jī)數(shù)和安全數(shù)的概念。

多線程和異步的區(qū)別在於,多線程同時(shí)執(zhí)行多個(gè)線程,而異步在不阻塞當(dāng)前線程的情況下執(zhí)行操作。多線程用於計(jì)算密集型任務(wù),而異步用於用戶交互操作。多線程的優(yōu)勢(shì)是提高計(jì)算性能,異步的優(yōu)勢(shì)是不阻塞 UI 線程。選擇多線程還是異步取決於任務(wù)性質(zhì):計(jì)算密集型任務(wù)使用多線程,與外部資源交互且需要保持 UI 響應(yīng)的任務(wù)使用異步。

C#和C 的歷史與演變各有特色,未來前景也不同。 1.C 由BjarneStroustrup在1983年發(fā)明,旨在將面向?qū)ο缶幊桃隒語言,其演變歷程包括多次標(biāo)準(zhǔn)化,如C 11引入auto關(guān)鍵字和lambda表達(dá)式,C 20引入概念和協(xié)程,未來將專注於性能和系統(tǒng)級(jí)編程。 2.C#由微軟在2000年發(fā)布,結(jié)合C 和Java的優(yōu)點(diǎn),其演變注重簡(jiǎn)潔性和生產(chǎn)力,如C#2.0引入泛型,C#5.0引入異步編程,未來將專注於開發(fā)者的生產(chǎn)力和雲(yún)計(jì)算。

C# 質(zhì)數(shù)指南。這裡我們討論c#中素?cái)?shù)的介紹和範(fàn)例以及程式碼實(shí)作。

可以採用多種方法修改 XML 格式:使用文本編輯器(如 Notepad )進(jìn)行手工編輯;使用在線或桌面 XML 格式化工具(如 XMLbeautifier)進(jìn)行自動(dòng)格式化;使用 XML 轉(zhuǎn)換工具(如 XSLT)定義轉(zhuǎn)換規(guī)則;或者使用編程語言(如 Python)進(jìn)行解析和操作。修改時(shí)需謹(jǐn)慎,並備份原始文件。

將 XML 轉(zhuǎn)換為 JSON 的方法包括:使用編程語言(如 Python、Java、C#)編寫腳本或程序進(jìn)行轉(zhuǎn)換;使用在線工具(如 XML 轉(zhuǎn)換為 JSON、Gojko's XML 轉(zhuǎn)換器、XML 在線工具)粘貼或上傳 XML 數(shù)據(jù)並選擇 JSON 格式輸出;使用 XML 到 JSON 轉(zhuǎn)換器(如 Oxygen XML Editor、Stylus Studio、Altova XMLSpy)執(zhí)行轉(zhuǎn)換任務(wù);使用 XSLT 樣式表將 XML 轉(zhuǎn)換為 JSON;使用數(shù)據(jù)集成工具(如 Informatic

C# 多線程編程是一種讓程序同時(shí)執(zhí)行多項(xiàng)任務(wù)的技術(shù),它可以通過提升性能、提高響應(yīng)能力和實(shí)現(xiàn)並行處理來提高程序效率。雖然 Thread 類提供了直接創(chuàng)建線程的方法,但 Task 和 async/await 等高級(jí)工具可以提供更安全的異步操作和更簡(jiǎn)潔的代碼結(jié)構(gòu)。多線程編程中常見的難題包括死鎖、競(jìng)態(tài)條件和資源洩漏,需要仔細(xì)設(shè)計(jì)線程模型和使用適當(dāng)?shù)耐綑C(jī)制來避免這些問題。

有三種將 XML 轉(zhuǎn)換為 Word 的方法:使用 Microsoft Word、使用 XML 轉(zhuǎn)換器或使用編程語言。
