Ale*_*fie 18 c# vb.net vb.net-to-c#
我刚开始使用C#,我有几个问题.有没有办法像下面这样编写VB.NET Select语句的C#等价物?
Select Object.Name.ToString()
Case "Name1"
'Do something
Case "Name2"
'Do something else
Case Else
'Do the default action
End Select
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
感谢到目前为止的输入,如果我将几个控件挂钩到一个事件处理程序,如下所示,我想对每个控件执行稍微不同的操作:
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
Run Code Online (Sandbox Code Playgroud)
有没有办法在C#中执行上面的select语句而不必使用嵌套的ifs?
Ale*_*fie 16
我随着时间的推移发现一些VB.NET Select...Case结构不适用于C#,唯一的方法就是编写很多ifs.
例如,在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
Run Code Online (Sandbox Code Playgroud)
但是switchC#中没有构造允许你做这种事情.你必须在环形交叉口编码,如下所示:
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;
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您正在使用Double或由连续而非离散值组成的任何类型,您将必须使用ifs来获取所需的操作.
原因?C#switch需要各种cases的常量.这与Select Case允许写入范围的VB.NET不同.
您正在寻找切换声明......
switch (Object.Name.ToString())
{
case "Name1":
//Do something
break;
default:
//default
break;
}
Run Code Online (Sandbox Code Playgroud)
请注意,中断是导入的,否则程序将会丢失.您几乎可以在任何C#介绍中找到它...
使用switch声明.
switch (object.Name.ToString()) {
case "Name1":
break;
//Do something
case "Name2":
break;
//Do something else
default:
break;
//Do the default action
}
Run Code Online (Sandbox Code Playgroud)
不要忘记,有一个免费的在线转换工具,允许您将VB.net转换为C#,反之亦然.
| 归档时间: |
|
| 查看次数: |
31526 次 |
| 最近记录: |