Хранить имя переменной в строку в VB.NET

голоса
3

Я пытаюсь сохранить имена некоторых переменных внутри строк. Например:

Dim Foo1 as Integer
Dim Foo1Name as String

' -- Do something to set Foo1Name to the name of the other variable --

MessageBox.Show(Foo1Name &  is the variable you are looking for.)
' Outputs:
' Foo1 is the variable you are looking for.

Это помогло бы с некоторой отладки я работаю.

Задан 09/12/2008 в 16:31
источник пользователем
На других языках...                            


5 ответов

голоса
5

Ну, вы можете четко установить только Foo1Name = «Foo1» - но я сильно подозреваю, что это не то, что вы после этого.

Как вы знаете , какой переменным вы пытаетесь найти имя? Что большая картина? То , что вы хотите , может быть возможно с отражением, если мы говорим о нелокальных переменных, но я подозреваю , что это либо не представляется возможным, или есть лучший способ решения данной проблемы в первую очередь.

Ответил 09/12/2008 в 16:36
источник пользователем

голоса
2

Имеет ли этот пример из MSDN с помощью отражения помощи?

Ответил 09/12/2008 в 16:44
источник пользователем

голоса
1

Я думаю , что это действительно зависит от того, что вы пытаетесь отлаживать. Два возможных вещей , чтобы посмотреть на являются Reflection и StackTrace классов. Тем не менее , когда ваша программа компилируется, компилятор и среда выполнения не гарантирует , что это имена должны быть совместимы с оригинальной программой.

Это особенно касается отладки против релиз сборки. Точка файлов .pdb (символы) в отладочной версии должны включать более подробную информацию о первоначальной программе. Для родной C приложений / C ++ настоятельно рекомендуется генерировать символы для каждой сборки (отладочный + релиз) вашего приложения , чтобы помочь при отладке. В .NET это менее важная проблема , так как есть такие функции , как отражение. IIRC Джон Роббинс рекомендует всегда генерировать символы для .NET проектов тоже.

Вы можете также найти Mike Stall в блоге полезными и управляемый отладчик образцы.

Ответил 09/12/2008 в 16:55
источник пользователем

голоса
1

Одним из решений было бы использовать ассоциативный массив для хранения переменных. После того, как я сделал это в .NET, но я думаю, что я написал собственный класс, чтобы сделать это.

myArray("foo1Name") = "foo1"

Затем, вы можете просто хранить список ваших имен переменных, или вы можете обернуть, что в том же классе.

if( myArray(variableName(x)) == whatImLookingFor ) print variableName(x) & "is it"
Ответил 09/12/2008 в 16:45
источник пользователем

голоса
0

Для нахождения имени переменной, см: Поиск имя переменной передается в функцию

Это относится к VB.Net, а также.

Ответил 09/12/2008 в 16:46
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more