Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die DebugView-Eigenschaft (nur beim Debuggen verfügbar) stellt ein Zeichenfolgenrendering von Ausdrucksstrukturen bereit. Die meisten Syntaxen sind recht einfach zu verstehen; die Sonderfälle werden in den folgenden Abschnitten beschrieben.
Jedes Beispiel folgt einem Kommentarblock, der die DebugView enthält.
ParameterExpression
ParameterExpression Variablennamen werden am Anfang mit einem "$"-Symbol angezeigt.
Wenn ein Parameter keinen Namen hat, wird ihm ein automatisch generierter Name zugewiesen, z $var1 . B. oder $var2.
Beispiele
Dim numParam As ParameterExpression = Expression.Parameter(GetType(Integer), "num")
'
' $num
'
Dim numParam As ParameterExpression = Expression.Parameter(GetType(Integer))
'
' $var1
'
ConstantExpressions
Bei ConstantExpression Objekten, die ganze Zahlen, Zeichenfolgen und nullZeichenfolgen darstellen, wird der Wert der Konstanten angezeigt.
Bei einigen numerischen Typen wird dem Wert ein Suffix hinzugefügt:
| Typ | Schlüsselwort | Nachsilbe |
|---|---|---|
| System.UInt32 | UInteger- | U |
| System.Int64 | Lang | L |
| System.UInt64 | ULong- | UL |
| System.Double | Double | D |
| System.Single | Single | F |
| System.Decimal | Dezimal | M |
Beispiele
Dim num as Integer = 10
Dim expr As ConstantExpression = Expression.Constant(num)
'
' 10
'
Dim num As Double = 10
Dim expr As ConstantExpression = Expression.Constant(num)
'
' 10D
'
BlockExpression
Wenn sich der Typ eines BlockExpression Objekts vom Typ des letzten Ausdrucks im Block unterscheidet, wird der Typ in winkeln Klammern (< und >) angezeigt. Andernfalls wird der Objekttyp BlockExpression nicht angezeigt.
Beispiele
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
LambdaExpression Objekte werden zusammen mit den Stellvertretungstypen angezeigt.
Wenn ein Lambda-Ausdruck keinen Namen hat, wird ihm ein automatisch generierter Name zugewiesen, z #Lambda1 . B. oder #Lambda2.
Beispiele
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),
"SampleLambda",
Nothing
)
'
' .Lambda #SampleLambda<System.Func'1[System.Int32]>() {
' 1
' }
'
LabelExpression
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 das Ziel an, zu dem gesprungen werden soll.
Wenn eine Bezeichnung keinen Namen hat, wird ihm ein automatisch generierter Name zugewiesen, z #Label1 . B. oder #Label2.
Beispiele
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
Markierte Operatoren werden mit dem # Symbol vor dem Operator angezeigt. Beispielsweise wird der geprüfte Additionsoperator als #+ angezeigt.
Beispiele
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
'