相关疑难解决方法(0)

C#switch语句限制 - 为什么?

在编写switch语句时,在case语句中可以打开的内容似乎存在两个限制.

例如(是的,我知道,如果你正在做这种事情,这可能意味着你的面向对象(OO)架构是不确定的 - 这只是一个人为的例子!),

  Type t = typeof(int);

  switch (t) {

    case typeof(int):
      Console.WriteLine("int!");
      break;

    case typeof(string):
      Console.WriteLine("string!");
      break;

    default:
      Console.WriteLine("unknown!");
      break;
  }
Run Code Online (Sandbox Code Playgroud)

这里switch()语句失败,带有'一个预期的整数类型的值',case语句失败并带有'a expected value is expected'.

为什么会有这些限制,以及基本理由是什么?我看不出有任何理由switch语句具有只能屈从于静态分析,为什么在接通的值必须是完整的(即原语).理由是什么?

c# switch-statement

136
推荐指数
8
解决办法
10万
查看次数

javascript开关(true)

嗨,我正在尝试处理ajax json响应

这是我的代码

success: function (j) {     
    switch(true)
    {
        case (j.choice1):

            alert("choice2");
        break;
        case (j.choice2):
                alert("choice2");
        break;
        default:
            alert("default");
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

基于什么是j返回我做我的行动但我继续得到默认.

我已经提醒j值并且正确.有些情况(j.choice1)case(j.choice2)无效.

我试过案例(j.choice1!="")(j.choice2!="")但在这种情况下,我一直是第一选择.

我错过了什么

javascript

18
推荐指数
1
解决办法
4万
查看次数

标签 统计

c# ×1

javascript ×1

switch-statement ×1