如:
public class ClassA
{
public void func1( ref int j )
{
j++ ;
}
}
public class ClassB
{
public void func2()
{
int j ;
ClassA A = new ClassA() ;
Type tpClass = A.GetType() ;
MethodInfo miMethod = tpClass.GetMethod( "func1" ) ;
miMethod.Invoke( A , new object[]{j} ) ; //这里这样调用的话,返回的j并没有作相应 的改变,没有达到ref的效果;如果写成ref j的话又有错误,该怎么写啊。
}
}
public class ClassA
{
public void func1( ref int j )
{
j++ ;
}
}
public class ClassB
{
public void func2()
{
int j ;
ClassA A = new ClassA() ;
Type tpClass = A.GetType() ;
MethodInfo miMethod = tpClass.GetMethod( "func1" ) ;
miMethod.Invoke( A , new object[]{j} ) ; //这里这样调用的话,返回的j并没有作相应 的改变,没有达到ref的效果;如果写成ref j的话又有错误,该怎么写啊。
}
}
{
int j = 0;
ClassA A = new ClassA();
type tpClass = A.GetType();
MethodInfo miMethod = tpClass.GetMethod("func1"); // 注意下面两行的改动
object[] args = new object[] { j };
miMethod.Invoke(A, args);
}
这有什么用啊?!像这样来做 int j = 10;
object[] args = new object[1];
args[0] = j;
ClassA A = new ClassA() ;
Type tpClass = A.GetType() ;
MethodInfo miMethod = tpClass.GetMethod( "func1" ) ;
miMethod.Invoke( A , args) ; Console.WriteLine(ars[0]);