【发布时间】:2017-11-05 10:35:21
【问题描述】:
我在 .net 4.7 中使用新的元组值类型。在这个例子中,我试图为一个或多个元组的情况创建一个 switch 语句:
using System;
namespace ValueTupleTest
{
class Program
{
static void Main(string[] args)
{
(char letterA, char letterB) _test = ('A','B');
Console.WriteLine($"Letter A: '{_test.letterA}', Letter B: '{_test.letterB}'");
switch (_test)
{
case ('A', 'B'):
Console.WriteLine("Case ok.");
break;
}
}
}
}
不幸的是,这不能编译。
如何在 switch 语句中正确获取元组和大小写?
【问题讨论】:
-
不能使用元组作为开关值,开关只接受常量值。
-
@Gusman 实际上不仅如此。
-
@YeldarKurmangaliyev 如果你的意思是新的使用类型的sintax,类型也可以被认为是常量。
-
@Gusman 我的意思是
when语法。case Rectangle r when r.Height == r.Width不是很固定 :)
标签: c# switch-statement tuples c#-7.0