studio - see cref c#
¿Existe un equivalente de la rotura etiquetada de Java en C#o una solución alternativa? (1)
Puedes usar goto
para saltar directamente a una etiqueta.
while (somethingA)
{
// ...
while (somethingB)
{
if (condition)
{
goto label1;
}
}
}
label1:
// ...
En lenguajes similares a C, a menudo, goto
termina siendo más limpio para romper los bucles anidados, en lugar de mantener un seguimiento de las variables booleanas y revisarlas repetidamente al final de cada bucle.
Estoy convirtiendo algo de código Java a C # y he encontrado algunas declaraciones etiquetadas "break" (por ejemplo)
label1:
while (somethingA) {
...
while (somethingB) {
if (condition) {
break label1;
}
}
}
¿Hay un equivalente en C # (la lectura actual sugiere que no) y si no, hay alguna otra conversión que no sea (digamos) tener indicadores bool para indicar si se debe romper en cada extremo del bucle (por ejemplo)
bool label1 = false;
while (somethingA)
{
...
while (somethingB)
{
if (condition)
{
label1 = true;
break;
}
}
if (label1)
{
break;
}
}
// breaks to here
Me interesaría saber por qué C # no tiene esto, ya que no parece ser muy malo.