(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Debuggen von Ausdrucksstrukturen (C# und Visual Basic)

Sie können die Struktur und den Inhalt von Ausdrucksbaumstrukturen analysieren, wenn Sie die Anwendungen debuggen. Sie können eine schnelle Übersicht über die Ausdrucksbaumstrukturstruktur mithilfe der DebugView-Eigenschaft erhalten, die nur im Debugmodus verfügbar ist. Weitere Informationen zum Debuggen finden Sie unter Debuggen in Visual Studio.

Die DebugView-Eigenschaft stellt den Inhalt von Ausdrucksbaumstrukturen mithilfe von Visual Studio-Schnellansichten übersichtlicher dar. Weitere Informationen finden Sie unter Schnellansichten.

So öffnen Sie eine Schnellansicht für eine Ausdrucksbaumstruktur

  1. Klicken Sie auf das Lupensymbol, das neben der DebugView-Eigenschaft einer Ausdrucksbaumstruktur in DataTips, einem Überwachungsfenster, dem Fenster Auto oder dem Lokalfenster angezeigt wird.

    Eine Liste von Schnellansichten wird angezeigt.

  2. Klicken Sie auf die gewünschte Schnellansicht.

Jeder Ausdruckstyp wird in der Schnellansicht angezeigt, wie in den folgenden Abschnitten beschrieben.

ParameterExpression -Variablennamen werden am Anfang mit einem "$"-Symbol angezeigt.

Wenn ein Parameter nicht über einen Namen verfügt, wird ihm ein automatisch generierter Name, z. B. $var1 oder $var2, zugewiesen.

Ee725345.collapse_all(de-de,VS.120).gifBeispiele

Ausdruck

DebugView -Eigenschaft

Dim numParam As ParameterExpression = 
Expression.Parameter(GetType(Integer), "num")

$num

Dim numParam As ParameterExpression = 
Expression.Parameter(GetType(Integer))

$var1

Für ConstantExpression-Objekte, die ganzzahlige Werte, Zeichenfolgen und null darstellen, wird der Wert der Konstante angezeigt.

Für numerische Typen, die Standardsuffixe als C#-Literale besitzen, wird das Suffix dem Wert hinzugefügt. In der folgenden Tabelle werden die verschiedenen numerischen Typen zugeordneten Suffixe angezeigt.

Typ

Suffix

UInt32

U

Int64

L

UInt64

UL

Double

D

Single

F

Decimal

M

Ee725345.collapse_all(de-de,VS.120).gifBeispiele

Ausdruck

DebugView -Eigenschaft

int num = 10;
ConstantExpression expr = Expression.Constant(num);

Dim num as Integer= 10
Dim expr As ConstantExpression = Expression.Constant(num)

10

double num = 10;
ConstantExpression expr = Expression.Constant(num);

Dim num As Double = 10
Dim expr As ConstantExpression = Expression.Constant(num)

10D

Wenn sich der Typ eines BlockExpression-Objekts vom Typ des letzten Ausdrucks im Block unterscheidet, wird der Typ in der DebugInfo-Eigenschaft in spitzen Klammern (< und >) angezeigt. Andernfalls wird der Typ des BlockExpression-Objekts nicht angezeigt.

Ee725345.collapse_all(de-de,VS.120).gifBeispiele

Ausdruck

DebugView -Eigenschaft

Dim block As BlockExpression = Expression.Block(Expression.Constant("test"))

.Block() {

"test"

}

Dim block As BlockExpression = 
Expression.Block(GetType(Object), Expression.Constant("test"))

.Block<System.Object>() {

"test"

}

LambdaExpression -Objekte werden zusammen mit ihren Delegattypen angezeigt.

Wenn ein Lambda-Ausdruck nicht über einen Namen verfügt, wird ihm ein automatisch generierter Name, z. B. #Lambda1 oder #Lambda2, zugewiesen.

Ee725345.collapse_all(de-de,VS.120).gifBeispiele

Ausdruck

DebugView -Eigenschaft

Dim lambda As LambdaExpression = 
Expression.Lambda(Of Func(Of Integer))(Expression.Constant(1))

.Lambda #Lambda1<System.Func'1[System.Int32]>() {

1

}

Dim lambda As LambdaExpression = 
Expression.Lambda(Of Func(Of Integer))(Expression.Constant(1), "SampleLamda", Nothing)

.Lambda SampleLambda<System.Func'1[System.Int32]>() {

1

}

Wenn Sie einen Standardwert für das LabelExpression-Objekt angeben, wird dieser Wert vor dem LabelTarget-Objekt angezeigt.

Das .Label-Token gibt den Anfang der Bezeichnung an. Das .LabelTarget-Token gibt den Zielort des Ziels an, zu dem gewechselt werden soll.

Wenn eine Bezeichnung über keinen Namen verfügt, wird ihr ein automatisch generierter Name, z. B. #Label1 oder #Label2, zugewiesen.

Ee725345.collapse_all(de-de,VS.120).gifBeispiele

Ausdruck

DebugView -Eigenschaft

Dim target As LabelTarget = Expression.Label(GetType(Integer), "SampleLabel")
Dim label1 As BlockExpression = Expression.Block(
Expression.Goto(target, Expression.Constant(0)),
Expression.Label(target, Expression.Constant(-1)))

.Block() {

.Goto SampleLabel { 0 };

.Label

-1

.LabelTarget SampleLabel:

}

Dim target As LabelTarget = Expression.Label()
Dim block As BlockExpression = Expression.Block(
Expression.Goto(target), Expression.Label(target))

.Block() {

.Goto #Label1 { };

.Label

.LabelTarget #Label1:

}

Überprüfte Operatoren werden mit dem Symbol "#" vor dem Operator angezeigt. Der überprüfte Additionsoperator wird z. B. als #+ angezeigt.

Ee725345.collapse_all(de-de,VS.120).gifBeispiele

Ausdruck

DebugView -Eigenschaft

Dim expr As Expression = Expression.AddChecked(
Expression.Constant(1), Expression.Constant(2))

1 #+ 2

Dim expr As Expression = Expression.ConvertChecked(
Expression.Constant(10.0), GetType(Integer))

#(System.Int32)10D

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.