プログラムを終了させずにメソッドを終了させるには?
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"
. - テキストボックスにメッセージを書き込む以外に、無効な入力を表示する別の方法を検討するとよいでしょう。
関連
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み] 他のスレッドからGUIを更新するにはどうすればよいですか?
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] メソッドと関数の違いは何ですか?
-
[解決済み] リフレクションを使ってジェネリックメソッドを呼び出すにはどうしたらいいですか?
-
[解決済み] メソッドを廃止または非推奨としてマークする方法は?
-
[解決済み] C#で同期メソッドから非同期メソッドを呼び出すには?
-
[解決済み] Bashスクリプトで、ある条件が発生したらスクリプト全体を終了させるにはどうしたらいいですか?
-
[解決済み】トレースバックなしでPythonを終了する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み】コンパイルエラー「未割り当てのローカル変数を使用しています」が発生したのはなぜですか?
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】WebResource.axdとは何ですか?
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015