gpt4 book ai didi

C#8 : Switch ref expressions

转载 作者:行者123 更新时间:2023-12-02 18:13:00 24 4
gpt4 key购买 nike

我不知道如何使 switch 表达式产生 ref 值。

bool cond = true;
int a = 1, b = 2;

// This works
ref int c = ref cond ? ref a : ref b;

// But using a switch expression fails to compile.
// Error CS1525 Invalid expression term 'ref'
c = ref (cond switch { true => ref a, false => ref b });

我的语法有错误吗?这可能吗?

无论我是否包含外部 ref ( ) 部分,它都不会编译。我使用 bool 只是为了快速说明问题,但我的实际用例并不那么简单。

最佳答案

是的,语法错误。由于您在问题(CS1525)中记下的编译器错误代码,这一点非常清楚。

为什么? switch 表达式似乎与 refs 不兼容。

不要与编译器对抗,只需以有效且易于阅读的方式编写代码即可。这是老式的编写方式:

ref int c = ref a;

if (!cond)
{
c = ref b;
}

关于C#8 : Switch ref expressions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58985980/

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