1. ホーム
  2. c#

プログラムを終了させずにメソッドを終了させるには?

2023-11-17 04:07:07

質問

C#はまだかなり初心者で、C/CPPに比べてなかなか慣れることができません。

C#で、この関数のようにプログラムを終了させずに関数を終了させるにはどうしたらいいのでしょうか?

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

これは戻り値の型を許さず、放っておくと関数の中で止まらずに進み続けることになります。これは望ましくないことです。

どのように解決するのですか?

プログラムを終了させることなく)メソッドを早期に終了させる方法は2つあります。

  • を使用する。 return キーワードを使用します。
  • 例外を投げる。

例外は例外的な状況、つまりメソッドを継続できないとき、呼び出し元にとって意味のある妥当な値を返せないときにのみ使用すべきです。通常は、終了したら返すだけでよいのですが。

もしあなたのメソッドがvoidを返すなら、値なしでreturnを書くことができます。

return;


あなたのコードについて具体的に。

  • 同じテストを3回書く必要はありません。それらの条件はすべて等価です。
  • また、if文を書くときは中括弧を使い、どの文がif文の本文の中にあるのかがわかるようにします。

    if (textBox1.Text == String.Empty)
    {
        textBox3.Text += "[-] Listbox is Empty!!!!\r\n";
    }
    return; // Are you sure you want the return to be here??
    
    
  • .NET 4 を使用している場合、要件に応じて、ここで使用を検討したい便利なメソッドがあります。 文字列.IsNullOrWhitespace .

  • あなたは かもしれない を使用したい。 Environment.Newline の代わりに "\r\n" .
  • テキストボックスにメッセージを書き込む以外に、無効な入力を表示する別の方法を検討するとよいでしょう。