2013-11-28 5 views
0

У меня есть строковое значение, в котором есть имя существующего экземпляра класса. Есть ли способ вернуть экземпляр из строки?Строка с именем экземпляра экземпляра для экземпляра

Например:

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

А теперь я хотел бы получить CheckBox экземпляр checkBox только по переменной nameOfInstance.

+0

Это переменное имя? Свойство чего-то еще? Просто имя типа? ... Дайте нам какой-нибудь код. –

+2

Сам экземпляр не имеет имени. Переменные, поля и свойства, которые указывают на него, имеют имена. Если у вас есть имя одного из них, вы можете использовать отражение для извлечения экземпляра. Но это грязно, и я бы посоветовал вам подумать о другом решении. Например, вы, вероятно, можете решить свою проблему с помощью словаря. – 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; 

Если вы ищете способ получить существующие экземпляры, создать Словарь (,) и поместите ссылки, которые вам нужны, чтобы посмотреть там.

Смежные вопросы