如何将ValueType参数传递给c#反射中的方法?



我的问题是,一个方法需要一个long类型的参数,我想通过反射来执行它。但是,MethodInfo需要一个对象数组,而long是一个值类型,不能强制转换为对象。如何解决?

。(举个例子)

class A
{
bool IsZero(long a)
{
return a == 0;
}
}

参数必须通过object[]指定

A myClassAInstance = new A();
MethodInfo mi = myClassAInstance.GetType().GetMethod("IsZero");
long myLong = 23;
var result = (bool)mi.Invoke(myClassAInstance, new object[]{myLong});

myLong自动装箱。

如果您有int,您必须将其强制转换为long

long myInt = 11;
var result = (bool)mi.Invoke(myClassAInstance, new object[]{(long)myInt});

数组中元素的个数和元素的类型必须与参数的个数和类型匹配(signature match)

相关内容

  • 没有找到相关文章

最新更新