- - PR -
空のIF文を書きますか?
投票結果総投票数:260 | |||
---|---|---|---|
許容できる | 85票 | 32.69% | |
許容できない | 148票 | 56.92% | |
どちらでもよい | 27票 | 10.38% | |
|
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-11-05 10:55
はぅ! それは便利ですね。 色々便利になるのはいいけど、全機能を把握出来無くなりそうだ・・・ # って、VisualStudio使ってないけど # 脱線失礼 | ||||||||||||||||||||
|
投稿日時: 2008-11-05 11:18
条件が整えば許容できる派です。
許容できる条件はまりもさん、およびにーさんと同様です。 で、処理の無いブロックに「この場合は何もしない」とかコメントを入れておくのを必須とします。 何も処理の無いIFブロックを書かないようにしたいがために 条件がわかりづらくなったり複雑になったりするくらいなら 処理の無いブロック作ってもいいから、わかりやすく書いてよ、 と思うことは、たまにあります。 (そういう意味では、IF文をむりやり1文で書かないで ネストしてくれよと思う時のほうが多いかも) | ||||||||||||||||||||
|
投稿日時: 2008-11-05 12:50
書くことありますよ、 質問とはちょっち意味が違いそうだけど。
if(条件) { //処理 } else { dummy(); //リリースビルドでは何もしないメソッドの呼び出し } dummy() の中身は、 実質的にカラッポで、 デバッグビルドではテスト実行時に通過したことがチェックできるようなコード ( Console.WriteLine() とか ) だけ。 なので、 この else 句はプログラムとしては不要なもの。 ということで、 お題の 「空の if 文」 と同じようなものかと。 f(^^; リリースビルドでは、 最適化されて else 以降はコンパイルされない。 (ハズ) デバッグビルドでは、 C0 カバレッジしか取れない Visual Studio でも、 これで C1 カバレッジが押さえられる。 _________________ | ||||||||||||||||||||
|
投稿日時: 2008-11-05 13:36
三値論理の世界の言語の
Cの
はそもそも
と意味が違うので許せない [ メッセージ編集済み 編集者: ひろ@ya 編集日時 2008-11-05 13:37 ] | ||||||||||||||||||||
|
投稿日時: 2008-11-05 14:33
僕も
因みに.NetではありませんがPerlじゃ
| ||||||||||||||||||||
|
投稿日時: 2008-11-05 16:39
は特定の条件下では許容できますが、部下にはこのようなコードは書かないように指導するでしょうね・・・。 処理の無いIFは許容というか、使い方しだいでは奨励してます。 例えば、
このコードはIfがネストしていて、分離性が乏しく、変更には耐えられませんが 以下の同意のIfに置き換えられます。
これはブロックごとに分離させていますので、各々条件が変わっても、他の条件には影響を与えません。 もちろんブロックごとにメソッドに分けることも可能になってくるでしょう。 また、
これも
っと言うのもありかなっと。 もちろん、コード量を減らす必要のあるプロジェクトではNGとなるでしょうが、この程度のコード量ならまぁいいかと思ってしまいます。 対比のIF文は同意のつもりですが、間違ってたらごめんなさい・・・。 しかもだいぶ脱線気味ですね。失礼いたしました。 | ||||||||||||||||||||
|
投稿日時: 2008-11-06 12:22
許容できるに投票しました。
可読性を損なわずコード規約に違反してなければ、 どちらでもよいと思ったためです。 ただ、皆さんがかかれているように、 コメント一行を書いていることが条件です。 | ||||||||||||||||||||
|
投稿日時: 2008-11-06 12:49
私は、むしろこっちのほうがトリッキーすぎて、とても読みづらいと感じます。深くてもネストしているほうが単純で好きです。主観もあるとは思いますが。ただ、ネストを避けないといけない理由が分かりませんでした。 |