c# - 带 bool 值的开关盒

标签 c#

我正在尝试为项目创建前缀文本值。我正在为此使用开关盒。当用户选择相关的单选按钮时,我们应该给出前缀值。

在“switch()”之后应该给什么

来自用户选择的值是一个 bool 值。 输出为字符串。

任何帮助..

 public string officePostfix()
  {
   string postfix = null;
     switch (...)
        {
            case SheetMgrForm.Goldcoast = true:
                postfix = "QLD";
                break;
            case SheetMgrForm.Melbourne = true:
                postfix = "MEL";
                break;
            case SheetMgrForm.Sydney = true:
                postfix = "SYD";
                break;
            case SheetMgrForm.Brisbane = true:
                postfix = "BIS";
                break;
        }
        return postfix;
     }

最佳答案

switch 不是这样工作的。您不能在每个 case 中放置任意 bool 表达式(假设您的意思是 == 而不是 =,顺便说一句)。

您需要使用一组 if-else block ,例如:

if (SheetMgrForm.Goldcoast) {
    postfix = "QLD";
} else if (SheetMgrForm.Melbourne) {
    postfix = "MEL";
} else if ......

但是,看起来您的设计需要一些返工。拥有所有这些单独的 bool 值很笨拙。

关于c# - 带 bool 值的开关盒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16662631/

相关文章:

c# - 错误处理asp.net MVC 5不允许在事件查看器中查看堆栈跟踪

c# - 配置在 Hangfire 上每 15 分钟执行一次的 cron 作业

c# - 确定两个数据表包含相同数据的最快方法?

c# - Quartz : Quartz. 找不到 XmlSerializers 中的奇怪错误

c# - 新继承的类在使用 EF Code First 迁移时重命名其属性名称

c# - 运算符 '?' 不能应用于类型 'T' 的操作数

c# - 即使 CausesValidation 为 false,也检查页面是否有效

c# - 解决方案中一个项目的 Release模式,但所有其他项目的 Debug模式

c# - 完成后我应该如何处理线程?离开它还是中止它?

c# - 为什么我的 OrderBy 错误没有给出编译器警告?