Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In C# can you define an alias to a value tuple with names?

Tags:

c#

c#-7.0

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?

like image 376
Nick Randell Avatar asked Apr 03 '17 09:04

Nick Randell


People also ask

What is ?: operator in C?

C operators are one of the features in C which has symbols that can be used to perform mathematical, relational, bitwise, conditional, or logical manipulations. The C programming language has a lot of built-in operators to perform various tasks as per the need of the program.

What does |= mean in C?

The bitwise OR assignment operator ( |= ) uses the binary representation of both operands, does a bitwise OR operation on them and assigns the result to the variable.

What is %d in C programming?

In C programming language, %d and %i are format specifiers as where %d specifies the type of variable as decimal and %i specifies the type as integer. In usage terms, there is no difference in printf() function output while printing a number using %d or %i but using scanf the difference occurs.


1 Answers

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.

like image 66
David Arno Avatar answered Sep 24 '22 17:09

David Arno