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

C#でのマルチキャストデリゲートとは何ですか?


複数のメソッドへの参照を保持するデリゲートは、マルチキャストデリゲートと呼ばれます。

例を見てみましょう-

using System;
delegate void myDelegate(int val1, int val2);
public class Demo {
   public static void CalAdd(int val1, int val2) {
      Console.WriteLine("{0} + {1} = {2}", val1, val2, val1 + val2);
   }

   public static void CalSub(int val1, int val2) {
      Console.WriteLine("{0} - {1} = {2}", val1, val2, val1 - val2);
   }
}

public class Program {
   static void Main() {
      myDelegate d = new myDelegate(Demo.CalAdd);
      d += new myDelegate(Demo.CalSub);
      d(45, 70);
      d -= new myDelegate(Demo.CalAdd);
      d(95, 70);
      d += new myDelegate(Demo.CalSub);
      d(88, 6);
      d -= new myDelegate(Demo.CalAdd);
      d(40, 20);
      Console.Read();
   }
}

上記の例では、デリゲートは-

です。
delegate void myDelegate(int val1, int val2);

以下を使用して、デリゲート内の複数のメソッド、つまりCalAdd()とCalSub()への参照を設定しました-

myDelegate d = new myDelegate(Demo.CalAdd);
d += new myDelegate(Demo.CalSub);
d(45, 70);
d -= new myDelegate(Demo.CalAdd);
d(95, 70);
d += new myDelegate(Demo.CalSub);
d(88, 6);
d -= new myDelegate(Demo.CalAdd);
d(40, 20);

  1. C#の名前空間とは何ですか?

    名前空間は、ある名前のセットを別の名前のセットから分離する方法を提供するためのものです。名前空間の定義は、次のように、キーワードnamespaceで始まり、その後に名前空間名が続きます- namespace namespace_name {    // code declarations } 名前空間を定義する- namespace namespace_name {    // code declarations } 以下は、C#で名前空間を使用する方法を示す例です- 例 using System; namespace first_space {

  2. C#のデリゲートとは何ですか?

    C#のデリゲートは、メソッドへの参照です。デリゲートは、メソッドへの参照を保持する参照型変数です。参照は実行時に変更できます。 デリゲートは、イベントとコールバックメソッドを実装するために特に使用されます。すべてのデリゲートは、System.Delegateクラスから暗黙的に派生します。 C#でデリゲートを宣言する方法を見てみましょう。 delegate <return type> <delegate-name> <parameter list> C#でデリゲートを操作する方法を学ぶための例を見てみましょう。 例 using System; using