拡張の文字通りの意味に従って、追加のメソッドは C# 拡張メソッドと呼ばれます。これを使用すると、元の構造体、クラス、またはインターフェイスを変更したり継承したり再構築したりせずに追加のメソッドを追加でき、そのような拡張メソッドを追加できます。当社が作成したカスタム クラス、.NET Framework のクラス、またはサードパーティまたはインターフェイスのクラスに対して、これらの拡張メソッドは、それらが定義されている名前空間を含めることでプログラムのフロー全体でアクセスでき、静的メソッドです。静的クラスで定義された特別な種類のオブジェクト。
名前空間、クラス、拡張メソッドを定義します。
構文:
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 は拡張メソッドの名前です。
パラメータ リストはパラメータのリストで、最初のパラメータはメソッドが操作する演算子のタイプであり、このキーワードのプレフィックスが付きます。
以下は C# 拡張メソッドの例です
2 つの整数を比較するプログラム内の拡張メソッドを示す 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(); } } }
出力:
説明: 上記のプログラムでは、check という名前空間が定義されています。次に、拡張メソッド クラスと呼ばれる静的クラスが定義され、その中に 2 つの整数を比較する拡張メソッドが定義されます。次に、check1 という別のクラスが定義され、そのクラス内に拡張メソッドを追加できます。たとえそれが別のクラスで定義されていても、同じ名前空間の下にある場合でも同様です。拡張メソッドは 2 つの整数の比較結果を返します。スナップショットの出力は、上のスナップショットに示されているとおりです。
文字列の長さを調べるプログラム内の Extension メソッドを示す 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 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(); } } }
出力:
説明: 上記のプログラムでは、check という名前空間が定義されています。次に、拡張メソッド クラスと呼ばれる静的クラスが定義され、その中にパラメータとして渡される文字列の長さを計算する拡張メソッドが定義されます。次に、check1 と呼ばれる別のクラスが定義され、そのクラス内に拡張メソッドを追加できます。たとえそれが別のクラスで定義されていても、同じ名前空間の下にある場合でも同様です。拡張メソッドは、パラメータとして渡された文字列の長さを結果として返します。スナップショットの出力は、上のスナップショットに示されているとおりです。
コード:
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(); } } }
出力:
説明: 上記のプログラムでは、check という名前空間が定義されています。次に、拡張メソッド クラスと呼ばれる静的クラスが定義され、その中にパラメータとして渡された 2 つの数値を加算する拡張メソッドが定義されます。次に、check1 という別のクラスが定義され、そのクラス内に拡張メソッドを追加できます。たとえそれが別のクラスで定義されていても、同じ名前空間の下にある場合でも同様です。拡張メソッドは 2 つの数値を加算した結果を返します。
このチュートリアルでは、定義、その構文、プログラミング例とその出力を通じて、C# 拡張メソッドの概念を理解します。
これは C# 拡張メソッドのガイドです。ここでは、C# 拡張メソッドの概要とその動作について、例とコード実装とともに説明します。詳細については、他の推奨記事を参照することもできます –
以上がC# 拡張メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。