entre - VB.NET Select... Caso Equivalente en C#
visual basic (4)
Estarías buscando la declaración de cambio ...
switch (Object.Name.ToString())
{
case "Name1":
//Do something
break;
default:
//default
break;
}
Tenga en cuenta que los saltos son importantes, de lo contrario el programa pasará por sus casos. Debería poder encontrar esto en casi cualquier introducción de C # ...
Acabo de empezar a usar C # y tengo un par de problemas. ¿Hay alguna forma de codificar el equivalente en C # de la declaración de VB.NET Select como la siguiente?
Select Object.Name.ToString()
Case "Name1"
''Do something
Case "Name2"
''Do something else
Case Else
''Do the default action
End Select
Cualquier ayuda sería muy apreciada.
Gracias por la entrada hasta ahora, ¿qué pasa si engancho varios controles a un controlador de eventos como en el siguiente y quiero realizar una acción ligeramente diferente para cada control:
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
¿Hay alguna manera de hacer la declaración de selección anterior en C # sin tener que usar if anidados?
He llegado a descubrir con el tiempo que algunas construcciones de Select...Case
VB.NET Select...Case
no se aplican en C # y la única forma de evitarlo es escribir muchos ifs.
Por ejemplo, en VB.NET, puede escribir:
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
Pero no hay un constructo de switch
en C # que le permita hacer algo de este tipo. Tendrás que codificar en rotonda así:
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;
}
O si está trabajando con Double
o cualquier tipo que esté compuesto de valores continuos en lugar de valores discretos, deberá usar if
para obtener la acción requerida.
¿Razón? El switch
C # requiere constantes para los diversos case
s. Esto es diferente del Select Case
de VB.NET que permite rangos de escritura.
Utilice una instrucción de switch
.
switch (object.Name.ToString()) {
case "Name1":
break;
//Do something
case "Name2":
break;
//Do something else
default:
break;
//Do the default action
}
Y no olvide que hay una herramienta de conversión en línea gratuita que le permite convertir VB.net a C # y viceversa.
Con C # 7, el interruptor se ha mejorado significativamente , y ahora es posible aplicar más condiciones dentro de los casos, aunque todavía no es tan "limpio" como la versión VB. Por ejemplo, podrías hacer algo como:
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;
}
Tomado de / Referencias: