110 votes

En C #, pouvez-vous définir un alias sur un tuple de valeur avec des noms?

Je sais qu'il est possible de définir des alias en C # avec le mot-clé using .

par exemple

 using ResponseKey = System.ValueTuple<System.Guid, string, string>;
 

Cependant, est-il possible d'en définir un en utilisant la nouvelle syntaxe pour les tuples de valeur?

 using ResponseKey = (Guid venueId, string contentId, string answer);
 

Cette syntaxe ne semble pas fonctionner. Devrait-il?

85voto

David Arno Points 15499

Cela a été demandé, et enregistré dans le Roslyn repo Github. Cependant, il a reçu un accueil mitigé là, et le projet de types d'enregistrement, serait plus que de couvrir cette exigence.

La question a été fermé dans les Roslyn repo mais est maintenant suivie dans le langage C# repo.

3voto

Christopher Points 56

using est défini comme: using ( MSDN ).

identifier n'est ni un espace de noms ni un nom de type (qualifié complet).

Mais je devine surtout. N'était-ce pas même au courant que C # 7.0 existait jusqu'à présent.

0voto

eddiewould Points 949

Vous pouvez étendre System.Tuple - à peu près comme ceci:

     public sealed class ResponseKey : System.Tuple<System.Guid, string, string>
    {
        public ResponseKey(System.Guid item1, string item2, string item3) : base(item1, item2, item3)
        {
        }

        public System.Guid VenueId => Item1;
        public string ContentId => Item2;
        public string Answer => Item3;
    }
 

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