은 그것의 이름을 아시는하여 변수의 값을 얻을 수있는 방법은 다음과 같이 있나요 :C#으로 이름으로 변수를 얻기
double temp = (double)MyClass.GetValue("VariableName");
내가 일반적으로이
같은 변수에 액세스 할 때double temp = MyClass.VariableName;
은 그것의 이름을 아시는하여 변수의 값을 얻을 수있는 방법은 다음과 같이 있나요 :C#으로 이름으로 변수를 얻기
double temp = (double)MyClass.GetValue("VariableName");
내가 일반적으로이
같은 변수에 액세스 할 때double temp = MyClass.VariableName;
reflection을 사용할 수 있습니다. 예를 들어 PropertyName
는 MyClass
에 공개 property 그리고 당신은 당신이 할 수이 클래스의 인스턴스가있는 경우 : 그것은 field 공공의 경우
MyClass myClassInstance = ...
double temp = (double)typeof(MyClass).GetProperty("PropertyName").GetValue(myClassInstance, null);
: 물론
MyClass myClassInstance = ...
double temp = (double)typeof(MyClass).GetField("FieldName").GetValue(myClassInstance);
당신이 알고 있어야를 그 반사 아무튼 비용이 들지 않는다. 직접 부동산/현장 접근에 비해 성과 위약이있을 수 있습니다.
주의하십시오. 이것을 자주 사용하는 것은 매우 느릴 수 있습니다. –
@Erno, 예, 절대적으로. –
리플렉션이 10 개의 스위치 필터보다 느려 집니까? – Andreas
리플렉션을 사용해야합니다. 자세한 내용은 http://msdn.microsoft.com/en-us/library/z919e8tw(v=vs.80).aspx을 참조하십시오.
나는 당신이 이것을하기 위해 필요한 컨텍스트에 대해 궁금합니다. 일반적으로 속성으로 값을 액세스하는 것은 충분하지 않습니다. –