これらのどれがより最適ですか?どちらを使用するかは重要ですか?
If (condition is true)
{
MessageBox.Show("bad data");
return;
}
//mode code here
また
If (condition is true)
{
MessageBox.Show("bad data");
}
else
{
//mode code here
}
これらのどれがより最適ですか?どちらを使用するかは重要ですか?
If (condition is true)
{
MessageBox.Show("bad data");
return;
}
//mode code here
また
If (condition is true)
{
MessageBox.Show("bad data");
}
else
{
//mode code here
}
2つは機能的に同じです。どちらも、動作やパフォーマンスの点で実際には他より優れているわけではありません。ここでの唯一の本当の問題は読みやすさであり、それは例の詳細と関係するプログラミングチームによって異なります。つまり、好きなものを選んでください。
これらのアサーションが当てはまるようにするには、例がもう少し完全である必要があることに注意してください。それは本当に比較しているはずです。
public static void returnMethod()
{
if (true)
MessageBox.Show("bad data");
//restOfMethod
}
と:
public static void elseMethod()
{
if (true)
MessageBox.Show("bad data");
else
{
//restOfMethod
}
}
私はあなたが意味するものはもっと似ていると思います
If (condition is true)
{
MessageBox.Show("bad data");
return;
}
...more code here...
vs
If (condition is true)
{
MessageBox.Show("bad data");
}
else
{
...more code here...
}
いいえ、パフォーマンスの違いはありません。
これは、デザインの好みにもっと当てはまります。一部の人々は、メソッドから抜け出すためにリターンを使用することは決してありませんが、コードをシンプルできちんと保つことを好む人もいます。リターンを使用することがそれを助けるのであれば、はるかに優れています。
これはいくつかのことに依存します。条件の後に、適用できなくなる追加のコードがありますか?その場合、差し迫ったステートメントの実行を妨げるため、returnがより最適になります。
もう1つのアイデアは、これをどのように配置するかです。これがリターンのあるメソッドにある場合は、それを使用します。同様に、周囲の関数がreturnを受け入れるようにすることが適切でない場合は、returnを使用したくないでしょう。
それは意味がありますか?
それが単なるプレースホルダーであり、その場合は次のようなことをしない限り、空のelse{}ステートメントは絶対にありません。
else
{
//Todo: Fill in logic to handle the else case, waiting for business to get back to me
}
個人的には「if」の中に戻るのは問題ないと思いますが、その下に何もない場合は「return;」と書きます。数百ピクセルの無駄です。それが数ピクセルでまったく同じことをし、理解するのが難しくなければ、私はいつもそれを選びます。
if-elseとreturnが同じことをするシナリオ(他の回答でいくつかの例が提供されています)では、読みやすさが重要だと思います。
私は、「if」の場合、「else」を書くか直接「return」を書くかは実際には問題ではないと思います。一部の「if-else」ステートメントがネストされていると、さらに悪化します。メソッド内にも複数の「return」があると、まったく読めなくなる可能性があります。
私はif-elseをネストするのが好きではなく、同じメソッド内に複数の戻り値を配置することもありません。しかし、私が選択しなければならない場合、私は複数の「リターン」を持つことを好みます。