C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でデリゲートを宣言してインスタンス化する方法は?


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

委任者を宣言するための構文-

delegate <return type> <delegate-name> <parameter list>

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

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

public delegate void printString(string s);
...
printString ps1 = new printString(WriteToScreen);
printString ps2 = new printString(WriteToFile);

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

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

  1. Num Lock:概要と仕組み

    文字キーの上に数字キーが指定されているキーボードなど、ほとんどのキーボードには番号ロック機能があります。コンパクトなラップトップキーボードでさえ、NumLockキーを備えています。キーの名前は、Num LockからNumLock、NumLK、または同様のものまでさまざまですが、機能は同じです。 Num Lockキーがどのように機能するか、それを見つけてオンにする方法、および使用方法を見てみましょう。 キーボードはメーカーやモデルによって異なりますが、ここでの情報はほとんどのラップトップとデスクトップPCに当てはまります。 MacにNumLockキーがない理由についても説明しますが、テンキー

  2. Python変数-Pythonで変数を宣言して使用する方法

    Pythonで変数を作成して使用する方法に関するガイド。 Python変数 変数は、メモリに格納されているオブジェクトへの参照を格納するために使用される名前付きの場所です。 Pythonで変数を作成するときは、次のルールを考慮する必要があります。 変数名は文字またはアンダースコアで始まる必要があります 変数名を数字で始めることはできません 変数名には、英数字とアンダースコア(A-z、0-9、および_)のみを含めることができます 変数名では大文字と小文字が区別されます(日付、日付、日付は3つの異なる変数です) 変数の長さは任意です 変数名をPythonキーワードにすることはできません P