gpt4 book ai didi

C# 7 模式匹配与元组

转载 作者:可可西里 更新时间:2023-11-01 08:06:29 33 4
gpt4 key购买 nike

是否可以像这样使用 c# 7 在 switch 语句中使用具有模式匹配的元组:

switch (parameter)
{
case ((object, object)) tObj when tObj.Item1 == "ABC":
break;
}

我收到一条错误消息,提示 tObj 在当前上下文中不存在

我也试过这个:

switch (parameter)
{
case (object, object) tObj when tObj.Item1 == "ABC":
break;
}

这很好用:

switch (parameter)
{
case MachineModel model when model.Id == "123":
break;
}

最佳答案

请记住,C#7 元组只是语法糖,所以 (object, object)真的只是System.ValueTuple<object, object> .

我猜想开发团队在元组的新语法中没有考虑到这种特殊情况,但您可以这样做:

switch (parameter)
{
case System.ValueTuple<object, object> tObj when tObj.Item1 == "x":
break;
}

此外,由于“var pattern”将匹配任何内容并尊重类型,因此上面的内容可以简化为:

switch (parameter)
{
case var tObj when tObj.Item1 == "x":
break;
}

关于C# 7 模式匹配与元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44706498/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com