2013-11-28 3 views
0

문자열 값은 클래스의 기존 인스턴스 이름입니다. 문자열에서 인스턴스를 가져 오는 방법은 무엇입니까?인스턴스의 인스턴스 문자열 이름을 캐스팅합니다.

예를 들어

:

CheckBox checkBox = new CheckBox(); 
string nameOfInstance = "checkBox"; 

을 그리고 지금은 단지 nameOfInstance 변수에 따라 CheckBox 예를 checkBox을 좀하고 싶습니다.

+0

변수 이름입니까? 다른 것의 재산? 타입 이름 만? ... 코드를주세요. –

+2

인스턴스 자체에는 이름이 없습니다. 변수를 가리키는 변수, 필드 및 속성에는 이름이 있습니다. 그 중 하나의 이름이 있다면, 리플렉션을 사용하여 인스턴스를 검색 할 수 있습니다. 그러나 그것은 지저분한 것이며 다른 해결책에 대해 생각해 보라고 조언합니다. 예를 들어 'Dictionary'를 사용하여 문제를 해결할 수 있습니다. – Blorgbeard

+0

질문을 확대하여 원하는 이유를 포함 할 수 있습니다. 왜냐하면 당신이 잘못된 경로에있을 것 같아서 ... – Mithon

답변

0

당신이 유형에서 새 인스턴스를 만들려면 :

Type type = Type.GetType(fullyQualifiedClassName, true); 
object[] arguments = new object[]{}; 
object obj = Activator.CreateInstance(type, arguments); 

당신은 함께 이름 공간 얻을 수 있습니다 : 기존 인스턴스를 얻을 수

string namespace = MethodBase.GetCurrentMethod().DeclaringType.Namespace; 

당신은 방법을 찾고 있다면을 만들 사전 (,)을 찾아보고 거기에 올려 놓을 수 있도록 필요한 참조를 넣으십시오.

관련 문제