난 그냥 반사를 시도하고있다 :왜 C# 리플렉션 코드가 충돌합니까?
using System;
using System.Collections.Generic;
using System.Reflection;
public class CTest {
public string test;
}
public class MyClass
{
public static void Main()
{
CTest cTest = new CTest();
Type t=cTest.GetType();
PropertyInfo p = t.GetProperty("test");
cTest.test = "hello";
//instruction below makes crash
string test = (string)p.GetValue(cTest,null);
Console.WriteLine(cTest.GetType().FullName);
Console.ReadLine();
}
}
: 당신이 일반적으로 나쁜 생각 (클래스 외부에서) 필드를 감동 매우 특별한 일을하지 않는 한 '는'! = null'을 위해'GetProperty()'와 같은 호출에서 반환되었습니다. ** A-L-W-A-Y-S ** –
자문을 구하십시오. CTest 변수의 이름을 cTest, _cTest, M_cTest 또는 여러분이 좋아하는 지역 변수의 명명 규칙으로 바꾸십시오. CTest.MyProp과 같은 줄이 정적 속성인지 또는 인스턴스 속성인지 여부를 확인하기가 어렵습니다. 버그가 찾기 힘들어집니다. – Dabblernl
OK Ctest를 ctest로 변경했습니다. – programmernovice