これは簡単な質問ですが、ここで正しい練習をすることを希望します。 CPUの能力が非常に強力であるため、何千もの反復を伴うループ・コンストラクトなしで呼び出されない限り、これは認識できないほどの違いがないため、この点についてはパフォーマンスの問題については検討していません。私はちょうど受け入れられている基準が何であるかについて意見を求めたい。ブールメソッドから復帰するために受け入れられている練習は何ですか
私は、基本的にチェックを行うだけの方法でブール値を返します。しかし、これを実装する方法は数多くあります。
これは私が通常これを実装する方法です。
public bool CanUndo()
{
if (_nCurrentUndoIndex > 0)
return true;
else
return false;
}
ただし、メソッドの途中から戻ることはよくありません。私が通常これを行う唯一の時間は、このようなフォーム提出をチェックするときです。
if (String.IsNullOrEmpty(firstName.Text))
{
MessageBox.Show("Please enter a first name", "Incomplete");
return;
}
私はそれが受け入れられると考えます。
「元に戻す」の質問に戻ると、これをコード化する別の方法があります。
public bool CanUndo()
{
bool returnVal;
if (_nCurrentUndoIndex > 0)
returnVal = true;
else
returnVal = false;
return returnVal;
}
これは変数を不必要に割り当て、より冗長なコードです。別のオプションがあります。
public bool CanUndo()
{
bool returnVal = false;
if (_nCurrentUndoIndex > 0)
returnVal = true;
return returnVal;
}
これは、elseを取り除くにつれ、より合理的です。ただし、値がtrueの場合はfalseに初期化することで不必要な割り当てを行います。
にそれを比較するときの理由は明らかになってください。
は展開
or
を検討してください。コンパイラはおそらくほとんどの違いを最適化してしまいます。たとえそうでなくても、数百万ではなく100万のループを話さない限り、その違いに気づくことはありません。 – hatchet