Wyrażenia w Visual Basic
Zarządzane szacującego akceptuje wyrażenia większości napisane w Visual Basic.W natychmiastowe okna modułu szacującego wyrażenie obsługuje tylko instrukcji pojedynczej linii.
Poniższe sekcje oferują szczegółowe informacje i omawiają niektóre typy wyrażeń, które nie są obsługiwane lub są częściowo obsługiwane:
Rzutowania
Obiekty dynamiczne
Obliczanie wartości funkcji
Identyfikatory i typy
Aliasy importu
Zmienne obiektowe zawierające typów wewnętrznych
Operatory
PropertyEvaluation
Ciągi
TypeOf Operator
Nieobsługiwane słowa kluczowe
Deklaracje zmiennych
WebMethods
Visual Basicnie obsługuje reguł autoexpand wyświetlania zawartości typu danych w formularzu znaczące.Aby uzyskać więcej informacji, zobacz Wyświetlanie elementów typu danych Custom.
Rzutowania
Proste poświaty działają w debugerze:
A = CStr(B)
Obiekty dynamiczne
Ewaluator wyrażeń może oszacować zmienne, które są statycznie typami dynamicznymi.Może to służyć do oszacowania obiektów implementujących interfejs IDynamicObject.Kiedy obiekty, że implementujące interfejs IDynamicObject są oceniane w Watch okna, dynamiczny widok dodać węzła.Węzeł Widok dynamiczny pokazuje elementy członkowskie obiektu dynamicznego, ale nie zezwala na edytowanie wartości elementów członkowskich.
Następujące funkcje obiektów dynamicznych nie są obsługiwane:
Złożone operatory +=, -=, %=, /= i *=
Wiele rzutowań, w tym rzutowania liczbowe i rzutowania z argumentem typu
Wywołania metod z więcej niż dwoma argumentami
Metody pobierające właściwości z więcej niż dwoma argumentami
Metody ustawiające właściwości z argumentami
Przypisywanie do indeksatora
Operatory logiczne && i ||
Obliczanie wartości funkcji
Debuger obsługuje oceny funkcji, w tym funkcji zastąpionej.W związku z tym można wpisać jedno z następujących wyrażeń, a narzędzie debugger będzie wywoływać poprawną wersję funkcji zastąpionej:
myFunction (param1)
myFunction (param1, param2)
Oceny funkcji w debugerze wywołania i wykonuje kod dla tej funkcji.Jeśli funkcja ma skutków ubocznych, takich jak przydzielanie pamięci lub zmiana wartości zmiennej globalnej oceny funkcji w oknie Debuger zmieni stan programu, który może dać nieoczekiwane rezultaty.
Po ustawieniu punktu przerwania w funkcji zastąpionej lokalizacji punkt przerwania zależy sposób określania funkcji.Jeśli określisz tylko nazwę tej funkcji debugera ustawi jeden punkt przerwania na każdym przeciążenie tej nazwy funkcji.Jeśli określisz pełną podpisu, nazwa funkcji i Pełna argument w postaci listy debugera ustawia jeden punkt przerwania na określony przeciążenie.
Identyfikatory i typy
Wyrażenia debugowania mogą używać dowolnych identyfikatorów widocznych w aktualnym zakresie.Jeśli debugera jest zatrzymywane w funkcji Magh, na przykład, można użyć większości identyfikatory widoczne w obrębie Magh, włącznie z nazwami zmiennych i nazwy funkcji.Lokalne nie są obsługiwane.Można ustawić wartość zmiennej wszelkie widoczne w bieżącym zakresie.
Debuger może poprawnie wyświetlić dowolnej zmiennej typu pierwotne, jak i wewnętrznych.W przypadku zmiennych typu klasy, debuger poprawnie wyświetla wartości na podstawie typu najbliżej pochodnego.Jeśli obiekt leo typu Lion, pochodzi od typu Cat, można oszacować leo.Clawlength i uzyskać poprawną wartość dla obiektu typu Lion.
Aliasy importu
Debugger systemu Windows nie można używać aliasów importu.
Zmienne obiektowe zawierające typów wewnętrznych
Obiekt zmiennych, które zawierają typów zmiennych wewnętrznych, takich jak liczba całkowita, są wyświetlane i edytowane w sposób, który może pojawić się intuicyjne.Na przykład załóżmy, że kodu źródłowego zawiera zmienną obiektu podobny do tego:
Dim obj As Object = 5
Watch okna wyświetlana jest wartość zmiennej obj jako:
5 {Integer}
Aby zmienić wartość tej zmiennej 6, należy wpisać:
6
Nie można wprowadzić:
6 {Integer}
Po zakończeniu edycji wartości, można zauważyć, że narzędzie debugger dodaje {Integer} dla Ciebie.
Operatory
Debuger ocenia poprawnie większość operatorów, w tym:
Arithmetical operators: ( expr1+ expr2, expr1- expr2, expr1* expr2, expr1/ expr2, expr1\expr2, expr1^expr2 , expr1Modexpr2 ).
Assignment operators: ( var1= expr2, var1^= expr2, var1*= expr2, var1/= expr2, var1\= expr2, var1+= expr2, var1-= expr2, var1&= expr2).
Comparison operators: (expr2< expr2, expr2<= expr2, expr1> expr2, expr1>= expr2, expr1= expr2, expr1<> expr2).
Concatenation operators: (expr1& expr2, expr1+ expr2).
Logical operators: (expr1And expr2, expr1Or expr2, expr1XOr expr2, expr1AndAlso expr2, expr1OrElse expr2, Notexpr1).
Unary operators: ( - expr1, Not expr1, GetType (type) ).
Oszacowywanie właściwości
Debuger może oszacować właściwości w dowolnym oknie zmiennej.Jednak oceny właściwości w debugerze może mieć skutki uboczne, takich jak zmiana wartości zmiennych, które wpływają na wyniki programu.Aby chronić przed skutki uboczne powodowane przez przypadkowe oceny, można wyłączyć oceny właściwości Ogólne, debugowanie, opcje okno dialogowe.
Ciągi
W Visual Basic, można użyć Length operatora na ciąg:
mystring.Length
-lub-
"hello world".Length
TypeOf Operator
W Visual Basic, można użyć TypeOf operatora w okna debugera:
TypeOf expressionIs type
Na przykład:
TypeOf Me Is Integer
Wyświetla wartość false.
Jeśli używasz TypeOf, musi część wyrażenia, która korzysta z Is.Jeśli używasz TypeOf bez Is, otrzymasz następujący komunikat o błędzie:
Is required
Nieobsługiwane słowa kluczowe
Następujące Visual Basic słowa nie są obsługiwane w wyrażeniach okna debugera:
AddressOf
End
Error
Exit
Goto
On Error
Return
Resume
Select/Case
Stop
SyncLock
Throw
Try/Catch/Finally
With
Ponadto, nie obszaru nazw lub moduł na poziomie słów kluczowych, takich jak End Sub lub Module, są obsługiwane.
Deklaracje zmiennych
Nie można zadeklarować jawne nowych zmiennych w debugerze systemu windows.
Jednak można przypisać do zmiennej niejawne w natychmiastowe okna.Zmienne niejawne są zakresu do debugera i nie są dostępne poza debugera.Na przykład, instrukcja o = 5 niejawnie utworzy nową zmienną o i przypisz wartość 5 do niej.Takie niejawne zmienne są typu Object chyba że typ można wywnioskować debugera.
WebMethods
Nie można wywoływać WebMethods z debugera systemu Windows.