어떤 진술다음 코드는 오류 및 지문 "일부</em>에서 <em>"없이 실행
m[0].Invoke(o, args);
가 foo
의 멤버 함수 some
를 호출하는 수단의 오브젝트 참조를 통해 클래스의 멤버에 액세스 할 수 없다 클래스, 개체 o
및 해당 공용 변수 i
영향을줍니다. 그러나 코드의 마지막 줄의 주석 처리를 제거하고 컴파일하려고하면 오류가 발생합니다. 왜?? 우리는 코드의 마지막 행의 주석을 해제하고 컴파일 할 때
using System;
using System.Reflection;
class foo
{
public int i;
public foo(int ii = 0)
{
i = ii;
}
public void some(int ii)
{
i = ii;
Console.WriteLine("In some ");
}
}
class main
{
static public void Main()
{
foo f = new foo();
object o = new foo();
Type t = typeof(foo);
object[] args = new object[1];
args[0] = 9;
MethodInfo[] m = t.GetMethods();
m[0].Invoke(o, args);
//Console.WriteLine(o.i);
}
}