目錄
C# 擴充方法的語法
C# 擴充方法的工作原理
實作 C# 擴充方法的範例
範例#3
結論
推薦文章
首頁 後端開發 C#.Net教程 C# 擴充方法

C# 擴充方法

Sep 03, 2024 pm 03:32 PM
c# c# tutorial

根據擴充的字面意思,附加方法稱為C#擴充方法,使用它可以在不做任何更改或繼承或重構原始結構、類別或介面的情況下添加附加方法,我們可以添加這樣的擴充方法我們創建的自訂類別、.NET 框架的類別或來自第三方或介面的類,這些擴展方法可以在整個程式流程中透過包含定義它們的命名空間來訪問,並且它是靜態方法靜態類別中定義的特殊類型。

C# 擴充方法的語法

定義命名空間、類別和擴充方法。

文法:

namespace namespace_name
{
public static class class_name
{
public static bool extension_method_name(parameters_list)
{
//Blocks of code
}
}
}

其中namespace_name是定義擴充方法的命名空間的名稱。

Class_name 是定義擴充方法的靜態類別的名稱。

Extension_method_name 是擴充方法的名稱。

參數列表是參數列表,第一個參數是方法要操作的運算子的類型,該運算子的前綴為 this 關鍵字。

C# 擴充方法的工作原理

  • 擴充方法是額外建立的自訂方法,不屬於原始類別的一部分。
  • 定義一個命名空間,在其中定義靜態類,然後在靜態類別中定義擴充方法。透過使用定義擴充方法的命名空間,可以在整個應用程式中使用該方法。
  • 擴充方法是靜態類別中定義的靜態方法的一種特殊情況,其第一個參數是要操作的運算子的類型,前綴為 this 關鍵字。
  • 擴充方法可以包含在.NET框架類別、自訂類別、結構或介面、第三方類別中。

實作 C# 擴充方法的範例

以下是 C# 擴充方法的範例

範例#1

C# 程序,示範程序中比較兩個整數的擴充方法:

 代碼:

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();
}
}
}

輸出:

C# 擴充方法

說明:在上面的程式中,定義了一個名為 check 的命名空間。然後定義一個稱為擴展方法類的靜態類,其中定義了比較兩個整數的擴展方法。然後定義另一個名為 check1 的類,即使它是在不同的類別中定義但位於同一命名空間下,也可以在其中新增擴充方法。擴展方法傳回兩個整數的比較結果。快照的輸出如上面的快照所示。

範例#2

C# 程式示範程式中的 Extension 方法以找出字串的長度:

 代碼:

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();
}
}
}

輸出:

C# 擴充方法

說明:在上面的程式中,定義了一個名為 check 的命名空間。然後定義一個稱為擴展方法類的靜態類,其中定義了計算作為參數傳遞給它的字串長度的擴展方法。然後定義另一個名為 check1 的類,即使它是在不同的類別中定義但位於同一命名空間下,也可以在其中新增擴充方法。擴展方法傳回作為參數傳遞給它的字串的長度作為結果。快照的輸出如上面的快照所示。

範例#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();
}
}
}

輸出:

C# 擴充方法

說明:在上面的程式中,定義了一個名為 check 的命名空間。然後定義一個稱為擴展方法類的靜態類,其中定義了將作為參數傳遞給它的兩個數字相加的擴展方法。然後定義另一個名為 check1 的類,即使它是在不同的類別中定義但位於同一命名空間下,也可以在其中新增擴充方法。擴展方法傳回兩個數字相加後的結果。

結論

在本教程中,我們透過定義、語法以及程式設計範例及其輸出來了解 C# 擴充方法的概念。

推薦文章

這是 C# 擴充方法的指南。在這裡,我們討論 C# 擴展方法簡介及其工作原理以及範例和程式碼實作。您也可以瀏覽我們其他推薦的文章以了解更多資訊 –

  1. C# 中的隨機數產生器
  2. Java 中的靜態建構子
  3. C# 中的 TextWriter
  4. C# 中的靜態建構子

以上是C# 擴充方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP教程
1535
276
c#多線程和異步的區別 c#多線程和異步的區別 Apr 03, 2025 pm 02:57 PM

多線程和異步的區別在於,多線程同時執行多個線程,而異步在不阻塞當前線程的情況下執行操作。多線程用於計算密集型任務,而異步用於用戶交互操作。多線程的優勢是提高計算性能,異步的優勢是不阻塞 UI 線程。選擇多線程還是異步取決於任務性質:計算密集型任務使用多線程,與外部資源交互且需要保持 UI 響應的任務使用異步。

C#與C:歷史,進化和未來前景 C#與C:歷史,進化和未來前景 Apr 19, 2025 am 12:07 AM

C#和C 的歷史與演變各有特色,未來前景也不同。 1.C 由BjarneStroustrup在1983年發明,旨在將面向對象編程引入C語言,其演變歷程包括多次標準化,如C 11引入auto關鍵字和lambda表達式,C 20引入概念和協程,未來將專注於性能和系統級編程。 2.C#由微軟在2000年發布,結合C 和Java的優點,其演變注重簡潔性和生產力,如C#2.0引入泛型,C#5.0引入異步編程,未來將專注於開發者的生產力和雲計算。

c#多線程編程是什麼  c#多線程編程用處 c#多線程編程是什麼 c#多線程編程用處 Apr 03, 2025 pm 02:45 PM

C# 多線程編程是一種讓程序同時執行多項任務的技術,它可以通過提升性能、提高響應能力和實現並行處理來提高程序效率。雖然 Thread 類提供了直接創建線程的方法,但 Task 和 async/await 等高級工具可以提供更安全的異步操作和更簡潔的代碼結構。多線程編程中常見的難題包括死鎖、競態條件和資源洩漏,需要仔細設計線程模型和使用適當的同步機制來避免這些問題。

C#.NET:使用.NET生態系統構建應用程序 C#.NET:使用.NET生態系統構建應用程序 Apr 27, 2025 am 12:12 AM

如何利用.NET構建應用?使用.NET構建應用可以通過以下步驟實現:1)了解.NET基礎知識,包括C#語言和跨平台開發支持;2)學習核心概念,如.NET生態系統的組件和工作原理;3)掌握基本和高級用法,從簡單控制台應用到復雜的WebAPI和數據庫操作;4)熟悉常見錯誤與調試技巧,如配置和數據庫連接問題;5)應用性能優化與最佳實踐,如異步編程和緩存。

從網絡到桌面:C#.NET的多功能性 從網絡到桌面:C#.NET的多功能性 Apr 15, 2025 am 12:07 AM

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

c#多線程的好處有哪些 c#多線程的好處有哪些 Apr 03, 2025 pm 02:51 PM

多線程的好處在於能提升性能和資源利用率,尤其適用於處理大量數據或執行耗時操作。它允許同時執行多個任務,提高效率。然而,線程過多會導致性能下降,因此需要根據 CPU 核心數和任務特性謹慎選擇線程數。另外,多線程編程涉及死鎖和競態條件等挑戰,需要使用同步機制解決,需要具備紮實的並發編程知識,權衡利弊並謹慎使用。

.NET框架與C#:解碼術語 .NET框架與C#:解碼術語 Apr 21, 2025 am 12:05 AM

.NETFramework是一個軟件框架,C#是一種編程語言。 1..NETFramework提供庫和服務,支持桌面、Web和移動應用開發。 2.C#設計用於.NETFramework,支持現代編程功能。 3..NETFramework通過CLR管理代碼執行,C#代碼編譯成IL後由CLR運行。 4.使用.NETFramework可快速開發應用,C#提供如LINQ的高級功能。 5.常見錯誤包括類型轉換和異步編程死鎖,調試需用VisualStudio工具。

將C#.NET應用程序部署到Azure/AWS:逐步指南 將C#.NET應用程序部署到Azure/AWS:逐步指南 Apr 23, 2025 am 12:06 AM

如何將C#.NET應用部署到Azure或AWS?答案是使用AzureAppService和AWSElasticBeanstalk。 1.在Azure上,使用AzureAppService和AzurePipelines自動化部署。 2.在AWS上,使用AmazonElasticBeanstalk和AWSLambda實現部署和無服務器計算。

See all articles