I'm trying to create a delegate of a static method which takes a ref argument. Please don't ask why I'm doing such a cockamamie thing. It's all part of learning how .Net, C#, and reflection work and how to optimize it.
My code is:
public struct DataRow { private double t; static public void Cram_T(ref DataRow dr, double a_t) { dr.t = a_t; } } '''' Type myType = typeof(DataRow); MethodInfo my_Cram_T_Method = myType.GetMethod("Cram_T"); var myCram_T_Delegate = Delegate.CreateDelegate(typeof(Action), my_Cram_T_Method) as Action; This gives me a binding error because (I think) the generic action doesn't match the method.
Inspecting the value of Cram_T_Method in the watch window gives
{Void Cram_T(DataRow ByRef, Double)} I then tried using the ref keyword in the Action:
var myCram_T_Delegate = Delegate.CreateDelegate(typeof(Action), my_Cram_T_Method) as Action; But this won't compile. The C# compiler chokes at the token "ref".
What is the right way to create this delegate?