Que signifie le var
à l'intérieur des accolades en C #?
Par exemple. il y a la question .
Sous la question, il y a un morceau de code dans une réponse:
Compilation error (line 7, col 34): The name 'var' does not exist in the current context
Je n'ai jamais vu le var
être utilisé comme ça et j'étais impossible de trouver quoi que ce soit à ce sujet en recherchant sur Google.
Lorsque j'essaye d'exécuter ce qui suit:
using System; public class Program { public static void Main() { var bytes = new byte[] { var }; } }
J'obtiens l'erreur:
BitArray bits = new BitArray(new byte[] { var });
J'utilise .NET 4.7.2
. Une version différente de .NET
est probablement nécessaire?
3 Réponses :
Par var
, ils signifiaient probablement variable dans ce cas. Vous obtenez une erreur indiquant que var n'existe pas dans le contexte actuel:
À partir du message d'origine:
byte var = 3; BitArray bits = new BitArray(new byte[] { var });
@ Flydog57 oui, je suis d'accord avec vous. Merci d'avoir clarifié cela.
C'est une variable nommée var
. Si vous regardez dans la source d'origine:
byte var = 3; BitArray bits = new BitArray(new byte[] { var });
var
est ce qu'on appelle un " contextual keyword ". Si vous l'utilisez comme identifiant - dans ce cas, une variable byte
nommée var
- alors il fonctionne comme un identifiant, pas comme un mot-clé. Il n'y a donc pas de signification particulière ici, il s'agit simplement de lancer un BitArray
basé sur un tableau byte
à 1 élément avec 3
comme seul élément. p>
Dans la question référencée, il y a une variable déclarée avec le nom var
(cela est possible car var
ne fait pas partie des mots-clés réservés en C #).
Cette syntaxe:
var bytes = new byte[] { var };
Est pour initialiseur de collection qui crée un tableau de octets
contenant un élément ( var
). Donc, dans votre cas, vous obtenez une erreur car il n'y a pas de variable / champ / propriété avec le nom var
accessible dans la portée.
ligne précédente avec
byte var = 3;
dans la question liée vous donne une réponse