ホームページ > バックエンド開発 > C#.Net チュートリアル > C# でデリゲートを宣言してインスタンス化するにはどうすればよいですか?

C# でデリゲートを宣言してインスタンス化するにはどうすればよいですか?

WBOY
リリース: 2023-09-04 20:01:05
転載
1420 人が閲覧しました

C# でデリゲートを宣言してインスタンス化するにはどうすればよいですか?

C# デリゲートは、C または C# の関数ポインターに似ています。デリゲートは、メソッドへの参照を保持する参照型変数です。参照は実行時に変更できます。

デリゲートを宣言するための構文 -

delegate <return type> <delegate-name> <parameter list>
ログイン後にコピー

次に、C# でデリゲートをインスタンス化する方法を見てみましょう。

デリゲート型を宣言した後、new キーワードを使用してデリゲート オブジェクトを作成し、それを特定のメソッドに関連付ける必要があります。デリゲートを作成するとき、新しい式に渡されるパラメーターはメソッド呼び出しと同じように記述されますが、メソッドのパラメーターは含まれません。

public delegate void printString(string s);
...
printString ps1 = new printString(WriteToScreen);
printString ps2 = new printString(WriteToFile);
ログイン後にコピー

次は、C# でデリゲートを宣言してインスタンス化する例です。

Example

ライブ デモンストレーション

using System;

delegate int NumberChanger(int n);
namespace DelegateAppl {

   class TestDelegate {
      static int num = 10;

      public static int AddNum(int p) {
         num += p;
         return num;
      }

      public static int MultNum(int q) {
         num *= q;
         return num;
      }

      public static int getNum() {
         return num;
      }

      static void Main(string[] args) {
         //create delegate instances
         NumberChanger nc1 = new NumberChanger(AddNum);
         NumberChanger nc2 = new NumberChanger(MultNum);

         //calling the methods using the delegate objects
         nc1(25);
         Console.WriteLine("Value of Num: {0}", getNum());
         nc2(5);
         Console.WriteLine("Value of Num: {0}", getNum());
         Console.ReadKey();
      }
   }
}
ログイン後にコピー

出力

Value of Num: 35
Value of Num: 175
ログイン後にコピー

以上がC# でデリゲートを宣言してインスタンス化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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