gpt4 book ai didi

c# - C# 和 "a constant value is expected"中的 switch 语句

转载 作者:IT王子 更新时间:2023-10-29 04:36:34 25 4
gpt4 key购买 nike

为什么编译器说第一种情况“需要一个常量值”...第二种情况工作正常...

switch (definingGroup)
{
case Properties.Settings.Default.OU_HomeOffice:
//do something
break;
case "OU=Home Office":
//do something
break;
default:
break;
}

也试过...

switch (definingGroup)
{
case Properties.Settings.Default.OU_HomeOffice.ToString():
//do something
break;
case "OU=Home Office":
//do something
break;
default:
break;
}

...同样的错误

这是 Properties.Setting 代码

[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("OU=Home Office")]
public string OU_HomeOffice {
get {
return ((string)(this["OU_HomeOffice"]));
}
}

最佳答案

Properties.Settings.Default.OU_HomeOffice 不是常量字符串 - 在编译时已知。 C# switch 语句要求每个 case 都是编译时常量。

(除此之外,这是它知道不会有任何重复项的唯一方法。)

有关详细信息,请参阅 C# 3.0 规范的第 8.7.2 节。

关于c# - C# 和 "a constant value is expected"中的 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/466565/

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