Yggdrasil said:

I think what you're looking for, to elaborate on what dpratt has written, is a new delegate along these lines:

public delegate void OutFunc<TIn, TOut> (TIn inParam, out TOut outParam); 


That's a bad idea. Your delegate has 1 output value. It should be a regular function that RETURNS the output value. The .NET design guidelines state that ref- and out-parameters should only be used if there's no other option.