InstructionsExpressionsOpérateurs
Des chercheurs danois et suédois en sciences informatiques et systèmes autonomes ont décortiqué la sécurité...
Nvidia se prépare à livrer la plate-forme serveur HGX-2 qui sera capable d'exploiter la puissance de 16 GPU Tesla V100...
L'EMD, une école de commerce située à Marseille ouvre à la prochaine rentrée l'école du numérique...
x et y sont des entiers, l'expression x + y correspond à une valeur numérique.
L'expression new MyClass() correspond à une référence à une nouvelle instance d'une classe MyClass.
L'expression myClass.ToString() correspond à une chaîne, car c'est le type de retour de la méthode.
Toutefois, même si un espace de noms est considéré comme une expression, il ne correspond pas à une valeur et ne peut donc jamais être le résultat final d'une expression.
Vous ne pouvez pas passer un nom d'espace de noms à un paramètre de méthode,
ni l'utiliser dans une nouvelle expression ou l'affecter à une variable.
Vous pouvez l'utiliser uniquement en tant que sous-expression dans une expression plus longue.
Il en va de même pour les types (par opposition aux objets System.Type), aux noms de groupes de méthodes (par opposition aux méthodes spécifiques)
et aux accesseurs d'événements add et remove.x et y sont toutes deux des variables de type int, la valeur de l'expression x + y est également de type int.
Si la valeur est assignée à une variable d'un type différent, ou si x et y sont des types différents,
les règles de conversion de type sont appliquées.Checked et Unchecked.5 et "Hello World" sont des valeurs littérales :i et s sont des noms simples qui identifient des variables locales.
Quand ces variables sont utilisées dans une expression, le nom de la variable prend la valeur qui est stockée actuellement à l'emplacement de la variable en mémoire.
Ceci est illustré dans l'exemple suivant :DoWork est une expression d'appel.void ne peuvent pas être utilisées à la place d'une valeur dans une expression.LINQ."méthodes inline" qui n'ont aucun nom mais qui peuvent avoir des paramètres d'entrée et plusieurs instructions.
Elles sont largement utilisées dans LINQ pour passer des arguments aux méthodes. Les expressions lambda sont compilées en délégués ou en
arborescences de l'expression en fonction du contexte dans lequel elles sont utilisées.LINQ pour traduire des expressions de requête en code explicite dans un autre contexte,
comme une base de données SQL.expression-bodied, qui vous permettent de fournir une définition de corps d'expression concise pour des méthodes,
des constructeurs, des finaliseurs, des propriétés et des indexeurs.| Membre | Prise en charge à compter de |
|---|---|
| Méthode | C# 6 |
| Propriété en lecture seule | C# 6 |
| Property | C# 7.0 |
| Constructeur | C# 7.0 |
| Finaliseur | C# 7.0 |
| Indexeur | C# 7.0 |
expression-bodied se compose d'une seule expression qui retourne une valeur dont le type correspond au type de retour de la méthode ou,
pour les méthodes qui retournent void, qui effectue une opération. Par exemple, les types qui substituent la méthode ToString
incluent généralement une expression unique qui retourne la représentation sous forme de chaîne de l'objet actuel.Person qui substitue la méthode ToString avec une définition de corps d'expression.
Il définit également une méthode DisplayName qui affiche un nom sur la console.
Notez que le mot clé return n'est pas utilisé dans la définition de corps d'expression ToString.Location dont la propriété en lecture seule Name est implémentée comme une définition
de corps d'expression qui retourne la valeur du champ privé locationName :get et les accesseurs set.
L'exemple suivant montre comment faire :Location dont le constructeur a un seul paramètre de chaîne nommé name.
La définition de corps d'expression assigne l'argument à la propriété Name.get et set d'un indexeur sont composés de définitions de corps d'expression si l'accesseur get est constitué d'une seule
instruction qui retourne une valeur ou si l'accesseur set effectue une assignation simple.Sports qui inclut un tableau String interne contenant les noms de plusieurs sports.
Les accesseurs get et set de l'indexeur sont implémentés en tant que définitions de corps d'expression.