C#初心者です。
私のクラスの 1 つ (正確には Entity クラス) には、Entity と別の関連クラスを受け取るデリゲートがあります。
public delegate void FiringFunc(Entity e, BulletFactory fact)
フレームごとにこの関数を呼び出す Entity クラスのループ (定義されている場合):
FiringFunc firingFunc = null; //defined later
if(firingFunc)
firingFunc(this, someBulletFactory);
お分かりのように、これは弾丸発射関数として機能するデリゲートです (弾丸のタイマー、発射する角度などをコーディングします)。しかし、考えが浮かびました: 弾丸にわずかな違いを持たせたいが、それでも同じままにしたい場合はどうすればよいでしょうか (少し遅い、色が少し違う、方向が違うなど)。デリゲートとして機能する別の関数を作成する必要があります-これは私には間違っているように思えました。
デリゲートの作成と設定の例を次に示します。
Entity e = new Entity( ... )
e.firingFunc = FiringFunctions.SomeFiringFunctionName;
これにパラメータを追加する方法はありますか? 次のようなことができれば素晴らしいと思います。
e.firingFunc = FiringFunctions.SomeFiringFunctionName(someChange1, someChange2);