1
votes

Que signifie le `var` à l'intérieur des accolades en C #?

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?


1 commentaires

ligne précédente avec byte var = 3; dans la question liée vous donne une réponse


3 Réponses :


1
votes

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 });


1 commentaires

@ Flydog57 oui, je suis d'accord avec vous. Merci d'avoir clarifié cela.



3
votes

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>


0 commentaires

4
votes

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.


0 commentaires