Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vlastnost DebugView (k dispozici pouze při ladění) poskytuje řetězcové vykreslování stromů výrazů. Většina syntaxe je poměrně jednoduchá pro pochopení; zvláštní případy jsou popsány v následujících částech.
Každý příklad následuje blok komentáře obsahující DebugView.
ParameterExpression
ParameterExpression Názvy proměnných se zobrazí se symbolem $na začátku.
Pokud parametr nemá název, přiřadí se mu automaticky vygenerovaný název, například $var1 nebo $var2.
Příklady
Dim numParam As ParameterExpression = Expression.Parameter(GetType(Integer), "num")
'
' $num
'
Dim numParam As ParameterExpression = Expression.Parameter(GetType(Integer))
'
' $var1
'
ConstantExpressions
Pro ConstantExpression objekty, které představují celočíselné hodnoty, řetězce a null, se zobrazí hodnota konstanty.
U některých číselných typů se k hodnotě přidá přípona:
| Typ | Klíčové slovo | Přípona |
|---|---|---|
| System.UInt32 | Neznaménkový integer | U |
| System.Int64 | Dlouhý | L |
| System.UInt64 | ULong | UL |
| System.Double | Dvojitý | D |
| System.Single | Jednoduchý | F |
| System.Decimal | Desetinné číslo | M |
Příklady
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
Pokud se typ objektu BlockExpression liší od typu posledního výrazu v bloku, typ se zobrazí v úhlových závorkách (< a >). V opačném případě se typ objektu BlockExpression nezobrazí.
Příklady
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 objekty se zobrazují společně s jejich typy delegátů.
Pokud výraz lambda nemá název, přiřadí se mu automaticky vygenerovaný název, například #Lambda1 nebo #Lambda2.
Příklady
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
Pokud zadáte výchozí hodnotu objektu LabelExpression , zobrazí se tato hodnota před objektem LabelTarget .
Token .Label označuje začátek popisku. Token .LabelTarget označuje místo, na které se má přejít.
Pokud popisek nemá název, přiřadí se mu automaticky vygenerovaný název, například #Label1 nebo #Label2.
Příklady
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:
' }
'
Zaškrtnuté operátory
Zaškrtnuté operátory se zobrazí se # symbolem před operátorem. Například, zaškrtnutý operátor sčítání se zobrazí jako #+.
Příklady
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
'