2 votes

c# Comment puis-je obtenir le nom de la liste d'éléments à laquelle il est fait référence ?

Est-il possible d'obtenir le nameof une variable lorsqu'elle est désignée comme un index de liste ? La première ligne de ma méthode RUN() compile et produit le "x", la deuxième ligne ne compile pas, disant que l'expression n'a pas de nom. Mais elle a un nom - comment puis-je la diriger pendant l'exécution pour obtenir ce nom, ou est-ce impossible via les listes ?

    class list_experiment
    {
        public string x = "xx";
        public List<string> list;

        public list_experiment()
        {
            list = new List<string>() { x };
        }
    }

    static public void RUN()
    {
        list_experiment a = new list_experiment();

        Console.WriteLine(nameof(a.x));
        Console.WriteLine(nameof(a.list[0])); // Doesn't compile
        Console.ReadKey();
    }

4voto

Daniel A. White Points 91889

La valeur de la liste est un référence à la valeur de la chaîne de caractères ** - il n'y a pas de lien avec x qui est un référence à la même chaîne.

nameof est une fonction de compilation. L'ajout à un List<T> est une facilité d'exécution que le compilateur ne peut raisonnablement pas suivre pour vous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X