C#新手在这里。
在我的一个类(准确地说是一个实体类)中,我有一个接受实体和另一个相关类的委托:
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);