gpt4 book ai didi

c# - 如何在 case 语句中使用 C# 枚举值的字符串值?

转载 作者:IT王子 更新时间:2023-10-29 03:52:45 24 4
gpt4 key购买 nike

我已经将 C# 枚举定义为

public enum ORDER
{
...
unknown,
partial01,
partial12,
partial23,
}

并且可以将其值用作字符串,如下所示:

            string ss = ORDER.partial01.ToString();

但是,当我尝试在 case 语句中使用它时,它无法编译:

string value = ...
switch (value)
{
case null:
break;
case "s":
// OK
break;
case ORDER.partial01.ToString():
// compiler throws "a constant value is expected"

break;
...

我认为枚举是常量。我该如何解决这个问题?

(我无法将值解析为枚举,因为某些值超出了范围)

最佳答案

从 C# 6 开始,您可以使用:case nameof(SomeEnum.SomeValue):

Nameof 在编译时被评估,只是一个与给定变量、类型或成员的(非限定)名称相匹配的字符串。当然,如果您重命名枚举选项名称,它也会随之改变。

关于c# - 如何在 case 语句中使用 C# 枚举值的字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1273228/

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