Complex use of delegates
<p>C# newbie here.</p>

<p>In one of my classes (an Entity class, to be precise), I have a delegate that takes in an Entity and another related class:</p>

<pre><code>public delegate void FiringFunc(Entity e, BulletFactory fact)
</code></pre>

<p>and a loop in the Entity class that calls this function every frame (if its defined):</p>

<pre><code>FiringFunc firingFunc = null; //defined later
if(firingFunc)
    firingFunc(this, someBulletFactory);    
</code></pre>

<p>As one could probably tell, this is a delegate that serves as a bullet firing function (you would code something like a timer for the bullet, the angles to fire at, etc). However, a thought occurred to me: what if I wanted the bullet to have a <em>slight</em> difference, but still remain the same (something like a tad bit slower, a slightly different color, in a different direction, etc). I would have to create another function to serve as the delegate - this seemed wrong to me.</p>

<p>Here is an example of what creating and setting the delegate would look like:</p>

<pre><code>Entity e = new Entity( ... )
e.firingFunc = FiringFunctions.SomeFiringFunctionName;
</code></pre>

<p>Is there a way I could add parameters to this? It would be great if I could do something akin to the following:</p>

<pre><code>e.firingFunc = FiringFunctions.SomeFiringFunctionName(someChange1, someChange2);
</code></pre>
