Estoy escribiendo un código en VB.NET que utiliza una instrucción de cambio pero en uno de los casos necesita saltar a otro bloque. En C# que se vería así:Declaración de cambio de VB.NET Vaya a la caja
switch (parameter)
{
case "userID":
// does something here.
case "packageID":
// does something here.
case "mvrType":
if (otherFactor)
{
// does something here.
}
else
{
goto default;
}
default:
// does some processing...
break;
}
Sin embargo, no sé cómo convertir esto a VB.NET. He intentado esto:
Select Case parameter
Case "userID"
' does something here.
Case "packageID"
' does something here.
Case "mvrType"
If otherFactor Then
' does something here.
Else
GoTo Case Else
End If
Case Else
' does some processing...
Exit Select
End Select
Pero cuando hago esto me sale un error de compilación: "Se esperaba un identificador". Hay una línea ondulada debajo de "Caso". ¿Algunas ideas?
Además, ¿es incorrecto utilizar una declaración de GoTo en este caso? Parece que de alguna otra forma tendría que volver a escribirlo.
me han cambiado mi código de la siguiente manera:
If otherFactor AndAlso parameter = "mvrType" Then
'does something here
Else
' My original "Select Case statement" here without the case for "mvrType"
End If
Muy interesante. ¿Cuál es el beneficio de usar declaraciones Select? Pensé que se utilizó una tabla de búsqueda. De cualquier forma, esto es lo que sospechaba (que VB.NET no lo soportaba) – KTF
No una instrucción select o una declaración switch es solo compilación "mágica" en .NET, en realidad transforma todo en una gran dificultad para leer si- declaración else –
No siempre es cierto (sé que este comentario es bastante antiguo, ¡pero es nuevo para mí!) - http://blogs.msdn.com/abhinaba/archive/2006/12/13/why-can-we-only-use -constants-in-a-switch-case-statement.aspx – Ant