In C# can you define an alias to a value tuple with names?
I know it's possible to define aliases in C# with the using keyword.
e.g.
using ResponseKey = System.ValueTuple<System.Guid, string, string>;
However, is it possible to define one using the new syntax for value tuples?
using ResponseKey = (Guid venueId, string contentId, string answer);
This syntax does not appear to work. Should it?
Solution 1:
Updated. As of C# 10, you can define either a struct or class-based record to fulfill this requirement:
public record struct ResponseKey(Guid venueId, string contentId, string answer);
public record class ResponseKey(Guid venueId, string contentId, string answer);
Note that class
is optional for the second definition.
This has been requested, and recorded in the Roslyn repo on Github. However it received a mixed reception there, and the proposed record types, would more than cover this requirement.
The issue was closed in the Roslyn repo but is now being tracked in the C# language repo.