[解決済み] 中括弧を省略することは、なぜ悪い習慣と考えられているのですか?[閉じる]
2022-04-20 15:38:03
質問
どうしてみんな、こんな風にコードを書くのは悪い習慣だと言うんだろう?
if (foo)
Bar();
//or
for(int i = 0 i < count; i++)
Bar(i);
中括弧を省略する最大の理由は、中括弧があると2倍の行数になってしまうことがあるからです。たとえば、次のコードはC#でラベルにグロー効果を描くためのものです。
using (Brush br = new SolidBrush(Color.FromArgb(15, GlowColor)))
{
for (int x = 0; x <= GlowAmount; x++)
{
for (int y = 0; y <= GlowAmount; y++)
{
g.DrawString(Text, this.Font, br, new Point(IconOffset + x, y));
}
}
}
//versus
using (Brush br = new SolidBrush(Color.FromArgb(15, GlowColor)))
for (int x = 0; x <= GlowAmount; x++)
for (int y = 0; y <= GlowAmount; y++)
g.DrawString(Text, this.Font, br, new Point(IconOffset + x, y));
を連鎖させることで、さらに効果を高めることができます。
usings
を何度もインデントする必要はありません。
using (Graphics g = Graphics.FromImage(bmp))
{
using (Brush brush = new SolidBrush(backgroundColor))
{
using (Pen pen = new Pen(Color.FromArgb(penColor)))
{
//do lots of work
}
}
}
//versus
using (Graphics g = Graphics.FromImage(bmp))
using (Brush brush = new SolidBrush(backgroundColor))
using (Pen pen = new Pen(Color.FromArgb(penColor)))
{
//do lots of work
}
中括弧の最も一般的な議論は、保守的なプログラミングと、元のif文とその意図する結果の間にコードを挿入することで発生する問題を中心に展開されます。
if (foo)
Bar();
Biz();
質問
- その言語が提供する、よりコンパクトな構文を使いたいと思うのは間違いでしょうか?このような言語を設計する人たちは頭が良いので、常に使い勝手の悪い機能を搭載するとは思えません。
- 最小公倍数が理解でき、問題なく作業できるようなコードを書くべきか、書くべきでないか?
- 他に私が見逃している論点はありますか?
解決方法は?
実は、今までで本当に噛みついたのは、デバッグ中にbar()をコメントアウトした時だけなんです。
if(foo)
// bar();
doSomethingElse();
それ以外は、使うことが多いですね。
if(foo) bar();
これで上記のケースは解決です。
EDIT 質問を明確にしてくれてありがとう、私は同意します、私たちは最小公倍数に合わせてコードを書くべきではないのです。
関連
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] .NETでフォーマット文字列のブレース(中括弧)をエスケープする方法
-
[解決済み] なぜJavaのVector(およびStack)クラスは時代遅れ、または非推奨とされているのですか?
-
[解決済み] 静的変数が悪とされるのはなぜですか?
-
[解決済み] iostream::eof がループ条件の中 (つまり `while (!stream.eof())`) にあるのはなぜいけないとされているのでしょうか?
-
[解決済み] なぜリストの初期化(中括弧を使用)が他の方法より優れているのですか?
-
[解決済み] なぜalloca()の使用はグッドプラクティスとみなされないのでしょうか?
-
[解決済み] System.gc()を呼び出すのはなぜ悪い習慣なのですか?
-
[解決済み】SpringのApplicationContext.getBeanがダメだと言われる理由とは?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
スタイルが読み込まれず、ブラウザのコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
Java Exceptionが発生しました エラー解決
-
[解決済み] 中括弧のないif文を使用するのは悪い習慣ですか?[クローズド]
-
Spring Boot による HTTPS アクセスの設定
-
JQuery DataTable 详解
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
が 'X-Frame-Options' を 'deny' に設定しているため、フレーム内にある。
-
org.glassfish.jersey.servlet.ServletContainer
-
あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a
-
Google Chromeのエラー「Not allowed to load local resource」の解決策について