C#에서는 MyClass
클래스의 인스턴스 인 객체 (예 : myObject
)가 있다고 가정합니다. myObject
만 사용하면 고정 회원 인 MyClass
에 어떻게 액세스합니까? 나는 일반적으로하지만이 일을 피하려고 것C# - 클래스의 인스턴스가 있으면 클래스의 정적 멤버에 어떻게 액세스하나요?
Type type = myObject.GetType();
FieldInfo field = type.GetField("i", BindingFlags.Public |
BindingFlags.Static);
int value = (int) field.GetValue(null);
매우 취성의 ... :
class MyClass
{
public static int i = 123 ;
}
class MainClass
{
public static void Main()
{
MyClass myObject = new MyClass() ;
myObject.GetType().i = 456 ; // something like this is desired,
// but erroneous
}
}
더 직접적으로 참조 할 수없는 이유를 설명 할 수 있습니까? 약간의 코드 냄새가 있습니다. –
내 메서드는 Block 유형의 매개 변수를 사용하지만 통과 된 실제 인수는 Block의 여러 * 하위 클래스 중 하나 인 클래스이며 각 하위 클래스는 정적 멤버의 고유 한 복사본을 갖습니다. 내 질문의 코드에서 "i"로). – JaysonFix
IMHO, "어떻게해야합니까?"에 대한 가장 좋은 대답은 무엇입니까? "하지 마라." 나는 이것이 그 시대의 하나라고 강력하게 의심한다. – tnyfst