switch salir quedar puede modificador fuera definicion control clausula anidados c# methods return exit

c# - quedar - ¿Cómo salir de un método sin salir del programa?



salir de if c# (6)

Todavía soy bastante nuevo en C # y me cuesta acostumbrarme a él en comparación con C / CPP.

¿Cómo salir de una función en C # sin salir del programa como lo haría esta función?

if (textBox1.Text == "" || textBox1.Text == String.Empty || textBox1.TextLength == 0) textBox3.Text += "[-] Listbox is Empty!!!!/r/n"; System.Environment.Exit(0);

Esto no permitirá los tipos de devolución y si se deja solo continuará a través de la función desactivada. Lo cual es indeseable


@John, Earlz y Nathan. La forma en que lo aprendí en la universidad es: las funciones devuelven valores, los métodos no. En algunos idiomas, la sintaxis es / era realmente diferente. Ejemplo (sin idioma específico):

Method SetY(int y) ... Function CalculateY(int x) As Integer ...

La mayoría de los lenguajes ahora usan la misma sintaxis para ambas versiones, usando void como un tipo de retorno para decir que en realidad no hay un tipo de devolución. Supongo que es porque la sintaxis es más consistente y más fácil cambiar de un método a otro, y viceversa.


Además de la respuesta de Mark, también debe tener en cuenta el alcance, que (como en C / C ++) se especifica utilizando llaves. Asi que:

if (textBox1.Text == "" || textBox1.Text == String.Empty || textBox1.TextLength == 0) textBox3.Text += "[-] Listbox is Empty!!!!/r/n"; return;

siempre regresará en ese punto. Sin embargo:

if (textBox1.Text == "" || textBox1.Text == String.Empty || textBox1.TextLength == 0) { textBox3.Text += "[-] Listbox is Empty!!!!/r/n"; return; }

solo regresará si entra en esa declaración if .


El problema básico aquí es que está confundiendo System.Environment.Exit para return .


Hay dos formas de salir de un método temprano (sin salir del programa):

  • Use la palabra clave return .
  • Lanza una excepción.

Las excepciones solo deben usarse en circunstancias excepcionales, cuando el método no puede continuar y no puede devolver un valor razonable que tenga sentido para la persona que llama. Por lo general, solo debes regresar cuando hayas terminado.

Si su método devuelve nulo, puede escribir la declaración sin un valor:

return;

Específicamente sobre tu código:

  • No es necesario escribir la misma prueba tres veces. Todas esas condiciones son equivalentes.
  • También debe usar llaves cuando escriba una instrucción if para que quede claro qué enunciados están dentro del cuerpo de la instrucción if:

    if (textBox1.Text == String.Empty) { textBox3.Text += "[-] Listbox is Empty!!!!/r/n"; } return; // Are you sure you want the return to be here??

  • Si está utilizando .NET 4, hay un método útil que, dependiendo de sus requisitos, puede considerar usar aquí: String.IsNullOrWhitespace .

  • Es might desee utilizar Environment.Newline lugar de "/r/n" .
  • Es posible que desee considerar otra forma de mostrar entradas no válidas que no sean escribir mensajes en un cuadro de texto.

Si la función es un vacío, finalizará la función. De lo contrario, debe hacer un return someValue explícito a return someValue . Como mencionó Mark, también puedes throw una excepción. ¿Cuál es el contexto de tu pregunta? ¿Tiene una muestra de código más grande con la que mostrarle algunas formas de salir de la función?


Yo usaría return null; para indicar que no hay datos para ser devueltos