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