MethodInfo.Invoke如何使用out ref参数

MethodInfo.Invoke可以指定一个Object[]来给要调用的方法传递参数,但是如何使用Out参数呢,主要是如何获取

其实执行方法后,方法out传出的参数会放到传入的object数组的对应位置,所以我们在对应位置直接访问就可以了

ref参数也是一样的

public void OprtParams(string param1, out string param2, ref string param3, ref int param4)
        {
            string s = "param1=" + param1+"param3="+param3+"param4="+param4.ToString();
            param2 = "param2changed";
            param3 = "param3changed";
            param4++;
        }

public void RunMethod()
       {
           MethodInfo mi = typeof(OutRefParams).GetMethod("OprtParams");
           object[] parameters=new object[]{"param1","param2","param3",1};
           mi.Invoke(new OutRefParams(),parameters);
           string s = "param1=" + parameters[0] + "param2=" + parameters[1] + "param3=" + parameters[2] + "param4=" + parameters[3].ToString();
       }

posted on 2010-03-10 16:12  漫步人生  阅读(3557)  评论(0编辑  收藏  举报