Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La propriété DebugView (disponible uniquement lors du débogage) fournit un rendu de chaîne d’arborescences d’expressions. La plupart de la syntaxe est assez simple à comprendre ; les cas spéciaux sont décrits dans les sections suivantes.
Chaque exemple est suivi d’un bloc de commentaires contenant le DebugView.
ParameterExpression
ParameterExpression Les noms de variables sont affichés avec un symbole « $ » au début.
Si un paramètre n’a pas de nom, il reçoit un nom généré automatiquement, tel que $var1 ou $var2.
Exemples
Dim numParam As ParameterExpression = Expression.Parameter(GetType(Integer), "num")
'
' $num
'
Dim numParam As ParameterExpression = Expression.Parameter(GetType(Integer))
'
' $var1
'
ConstantExpressions
Pour ConstantExpression les objets qui représentent des valeurs entières, des chaînes et null, la valeur de la constante est affichée.
Pour certains types numériques, un suffixe est ajouté à la valeur :
| Catégorie | Mot-clé | Suffixe |
|---|---|---|
| System.UInt32 | UInteger | U |
| System.Int64 | Long | L |
| System.UInt64 | ULong | UL |
| System.Double | Double | D |
| System.Single | Single | F |
| System.Decimal | Décimal | M |
Exemples
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
Si le type d’un BlockExpression objet diffère du type de la dernière expression dans le bloc, le type est affiché entre crochets angle (< et >). Sinon, le type de l’objet BlockExpression n’est pas affiché.
Exemples
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 les objets sont affichés avec leurs types délégués.
Si une expression lambda n’a pas de nom, elle reçoit un nom généré automatiquement, tel que #Lambda1 ou #Lambda2.
Exemples
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
Si vous spécifiez une valeur par défaut pour l’objet LabelExpression , cette valeur est affichée avant l’objet LabelTarget .
Le .Label jeton indique le début de l’étiquette. Le .LabelTarget jeton indique la destination de la cible vers laquelle accéder.
Si une étiquette n’a pas de nom, elle reçoit un nom généré automatiquement, tel que #Label1 ou #Label2.
Exemples
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:
' }
'
Opérateurs vérifiés
Les opérateurs vérifiés sont affichés avec le # symbole devant l’opérateur. Par exemple, l’opérateur d’ajout vérifié s’affiche sous la forme #+.
Exemples
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
'