C# 拡張メソッド

WBOY
リリース: 2024-09-03 15:32:56
オリジナル
707 人が閲覧しました

拡張の文字通りの意味に従って、追加のメソッドは C# 拡張メソッドと呼ばれます。これを使用すると、元の構造体、クラス、またはインターフェイスを変更したり継承したり再構築したりせずに追加のメソッドを追加でき、そのような拡張メソッドを追加できます。当社が作成したカスタム クラス、.NET Framework のクラス、またはサードパーティまたはインターフェイスのクラスに対して、これらの拡張メソッドは、それらが定義されている名前空間を含めることでプログラムのフロー全体でアクセスでき、静的メソッドです。静的クラスで定義された特別な種類のオブジェクト。

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 は拡張メソッドの名前です。

パラメータ リストはパラメータのリストで、最初のパラメータはメソッドが操作する演算子のタイプであり、このキーワードのプレフィックスが付きます。

C# 拡張メソッドの動作

  • 拡張メソッドは追加で作成されるカスタム メソッドであり、元のクラスの一部ではありません。
  • 名前空間が定義され、その中で静的クラスが定義され、次に拡張メソッドが静的クラス内で定義されます。拡張メソッドが定義されている名前空間を使用することで、アプリケーション全体でメソッドを使用できます。
  • 拡張メソッドは、静的クラス内で定義された静的メソッドの特殊なケースで、その最初のパラメーターは、このキーワードのプレフィックスが付いた演算子の型です。
  • 拡張メソッドは、.NET Framework クラス、カスタム クラス、構造体またはインターフェイス、サードパーティ クラスに含めることができます。

C# 拡張メソッドの実装例

以下は C# 拡張メソッドの例です

例 #1

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();
}
}
}
ログイン後にコピー

出力:

C# 拡張メソッド

説明: 上記のプログラムでは、check という名前空間が定義されています。次に、拡張メソッド クラスと呼ばれる静的クラスが定義され、その中に 2 つの整数を比較する拡張メソッドが定義されます。次に、check1 という別のクラスが定義され、そのクラス内に拡張メソッドを追加できます。たとえそれが別のクラスで定義されていても、同じ名前空間の下にある場合でも同様です。拡張メソッドは 2 つの整数の比較結果を返します。スナップショットの出力は、上のスナップショットに示されているとおりです。

例 #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();
}
}
}
ログイン後にコピー

出力:

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 という名前空間が定義されています。次に、拡張メソッド クラスと呼ばれる静的クラスが定義され、その中にパラメータとして渡された 2 つの数値を加算する拡張メソッドが定義されます。次に、check1 という別のクラスが定義され、そのクラス内に拡張メソッドを追加できます。たとえそれが別のクラスで定義されていても、同じ名前空間の下にある場合でも同様です。拡張メソッドは 2 つの数値を加算した結果を返します。

結論

このチュートリアルでは、定義、その構文、プログラミング例とその出力を通じて、C# 拡張メソッドの概念を理解します。

おすすめ記事

これは C# 拡張メソッドのガイドです。ここでは、C# 拡張メソッドの概要とその動作について、例とコード実装とともに説明します。詳細については、他の推奨記事を参照することもできます –

  1. C# の乱数ジェネレーター
  2. Java の静的コンストラクター
  3. C# の TextWriter
  4. C# の静的コンストラクター

以上がC# 拡張メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート