Nazwa zmiennej przechowywać w string w VB.NET

głosy
3

Próbuję zapisać nazwy niektórych zmiennych wewnątrz ciągi. Na przykład:

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.

Pomogłoby to z pewnym debugowania ja pracuję.

Utwórz 09/12/2008 o 16:31
źródło użytkownik
W innych językach...                            


5 odpowiedzi

głosy
5

Cóż, można oczywiście po prostu ustawić Foo1Name = „foo1” - ale podejrzewam, że nie jest to, co jesteś po.

Skąd wiesz o zmiennej starasz się znaleźć nazwę? Co znajduje się w większy obraz? Co chcesz może być możliwe z refleksji, jeśli mówimy o zmiennych nielokalnych, ale podejrzewam, że to też nie jest to wykonalne, czy istnieje lepszy sposób, aby zaatakować ten problem w pierwszej kolejności.

Odpowiedział 09/12/2008 o 16:36
źródło użytkownik

głosy
2

Czy ten przykład z MSDN użyciu odbicia pomoc?

Odpowiedział 09/12/2008 o 16:44
źródło użytkownik

głosy
1

Myślę, że to zależy od tego, co chce do debugowania. Dwa możliwe rzeczy patrzeć na to odbicie i StackTrace klas. Powiedział, że gdy program jest kompilowany, kompilator i środowisko wykonawcze nie gwarantuje, że nazwy muszą być zgodne z oryginalnym programem.

Jest to szczególnie w przypadku debugowania vs uwolnienia buduje. Punktem plików .pdb (symbole) w wersji debug mają zawierać więcej informacji na temat oryginalnego programu. Dla aplikacji natywnej C / C ++ jest wysoce zalecane, aby wygenerować symbole dla każdej kompilacji debugowania + (release) swojej aplikacji, aby pomóc debugowania. W .NET jest to mniejszy problem, ponieważ istnieją funkcje takie jak odbicie. IIRC John Robbins zaleca zawsze generują symbole dla projektów .NET zbyt.

Można również znaleźć Mike'a straganie za blog użyteczny i zarządzane debugger próbki.

Odpowiedział 09/12/2008 o 16:55
źródło użytkownik

głosy
1

Jednym rozwiązaniem byłoby wykorzystanie tablicy asocjacyjnej do przechowywania zmiennych. Kiedyś robiłam to w .NET, ale myślę, że napisał niestandardowej klasy, aby to zrobić.

myArray("foo1Name") = "foo1"

Następnie można po prostu zapisać listę swoich nazw zmiennych, czy można owinąć się, że w tej samej klasie.

if( myArray(variableName(x)) == whatImLookingFor ) print variableName(x) & "is it"
Odpowiedział 09/12/2008 o 16:45
źródło użytkownik

głosy
0

Dla znalezienia nazwę zmiennej, patrz: Znalezienie nazwy zmiennej przekazany do funkcji

Ma to zastosowanie do VB.Net również.

Odpowiedział 09/12/2008 o 16:46
źródło użytkownik

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