メソッドで次のコード行が動作しないのはなぜですか?C#でリターンとショートハンドを使用する場合
return (count > 0) ? true : false;
私がしなければそれは完全に正常に動作します:
bool ret = (count > 0) ? true : false;
return ret;
ボーナス質問:文の場合、それは本当に速くなったり、より効果的な標準よりか?
bool ret = false;
if(count > 0)
ret = true;
return ret;
どちらをお勧めしますか?
コンパイル時にエラーが発生しないと思いますが、メソッドが間違った値を返すだけですか? – ChrisF
コンパイル時エラーです...構文にエラーがありました。 –
3次演算子で頻繁に発生することは、最初の結果(count> 0)の評価が関数が使用する戻り値を決定することです。あなたの関数はboolを返すと仮定します。
私は(count> 0)の値を確認しようとします。これが問題ならば、文全体を大文字にする必要があります。
return(bool)((count> 0)?true:false); それは私が他の場所で見ている奇妙なことです。
bool ret; if (count > 0) { ret = true; } else { ret = false } return ret;
しかし、私はいつも三次オペレータは「C」言語:) – KevinDTimm