我刚刚开始使用C#,我遇到了一些问题。是否有任何方法可以像以下内容编写VB.NET选择语句的C#等效内容?

Select Object.Name.ToString()
    Case "Name1"
        'Do something
    Case "Name2"
        'Do something else
    Case Else
        'Do the default action
End Select

任何帮助将不胜感激。


迄今为止,感谢您的输入,如果我将几个控件连接到一个事件处理程序,那么我想为每个控件执行一个略有不同的操作:

Private Sub Button_Click(sender as Object, e as EventArgs) _
  Handles button1.Click, Button2.Click

    'do a general activity

    Select CType(sender, Button).Name
        Case button1.Name
            'do something
        Case button2.Name
            'do something else
        Case Else
            'do the defalut action
    End Select
End Sub

是否有任何方法可以在C#中执行上述选择语句而无需使用嵌套IF?

有帮助吗?

解决方案

随着时间的流逝,我来找一些vb.net Select...Case 构造不适用于C#,唯一的方法是编写很多IF。

例如,在vb.net中,您可以写下:

Dim num as Integer = 5

Select Case num
    Case 1 to 10
        'do something

    Case 11 to 20
        'do another thing

    Case Else
        'do the default
End Select

但是没有 switch 在C#中构造,使您可以做一些此类操作。您必须在回旋处进行编码:

int num = 5;

switch (num)
{
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
        //do something
        break;
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
        //do something else
        break;
    default:
        //do the default
        break;
}

或者,如果您碰巧与之合作 Double 或由连续而不是离散值组成的任何类型,您必须使用 ifs采取必要的措施。

原因? CS switch 需要各种常数 cases。这与vb.net不同 Select Case 允许写作范围。

其他提示

您将在寻找Switch语句...

switch (Object.Name.ToString())
{
   case  "Name1":
     //Do something
     break;
   default:
     //default
     break;
}

请注意,休息时间是导入的,否则该程序将在您的案例中删除。您应该能够在几乎任何C#介绍...上找到它...

用一个 switch 陈述。

switch (object.Name.ToString()) {
  case "Name1":
    break;
    //Do something 
  case "Name2":
    break;
    //Do something else 
  default:
    break;
   //Do the default action 
}

而且不要忘记有一个 免费的在线转换工具 这使您可以将vb.net转换为c#和viceversa。

使用C#7,开关已得到显着增强, ,现在可以在情况下应用更多条件,尽管它仍然不如VB版本“干净”。例如,您可以做类似的事情:

switch (examScore)
{
  case int es when es >= 90: grade = "A"; break;
  case int es when es >= 80: grade = "B"; break;
  case int es when es >= 70: grade = "C"; break;
  case int es when es >= 60; grade = "D"; break;
  default: grade = "F"; break;
}

取自 /参考:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top