Je sais qu'il est possible de définir des alias en C # avec le mot-clé en utilisant .
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?
Ceci a été demandé et enregistré dans le dépôt Roslyn sur Github . Cependant, il a reçu un accueil mitigé là-bas, et les types d’enregistrement proposés , couvriraient largement cette exigence.
Le problème a été fermé dans le référentiel Roslyn mais est maintenant suivi dans le référentiel en langage C # .
using
est défini comme: using identifier = namespace-or-type-name;
( MSDN ).
(Guid venueId, string contentId, string answer)
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.
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;
}