首頁  >  文章  >  後端開發  >  C# 擴充方法

C# 擴充方法

WBOY
WBOY原創
2024-09-03 15:32:56677瀏覽

根據擴充的字面意思,附加方法稱為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
上一篇:C# 模式匹配下一篇:C# 模式匹配