2017-02-04 14 views
0

私はいつも中括弧を使用することを好みました。 中括弧はC#でパフォーマンスに影響しますか?

if (condition) 
{ 
    statement; 
} 

枚この文は

if(condition) 
statement; 

または

私はSOおよび他のフォーラムを通じて検索しました
if(condition) statement; 

のように書くことができ、人々のほとんどは、最初のオプションを好みます。私は、実行時のパフォーマンスに影響がないことを知っています。 コンパイル時に最初のアプローチのパフォーマンス要因はありますか? ifまたはif-elseifのような.NETフレームワークまたはCLRによる決定文の処理方法次のオプション(2番目と3番目)には、どんな種類の拡張されたパフォーマンスがありますか?差はごくわずかですが、コンパイラがこの状況をどのように処理するかを知りたいと思います。

+3

違いはありません.... – Igor

+5

これらのすべてのILは同一です。低レベルの観点からは、**の角カッコはありません。条件付きのジャンプだけです。 –

+1

これらのフラグメントのコンパイル時間の差がナノ秒オーダである場合。だから、たとえ遅いものを選んだとしても、1ミリ秒の小さな違いを見るには何百万行ものコードを書く必要があります。あなたとあなたのチームのどちらがもっと読みやすいかのような、より重要なものに焦点を当ててください。 –

答えて

0

no。コンパイラが彼の仕事を奪った後。コードは全く同じです

+0

コンパイル時間はどうですか?私はそれを知りたい。 – lukai

+2

私は確かにわかりませんが、彼は何にも何の影響も与えないと思いますが、中括弧を使用していないときにステートメントに行を追加する既知のリスク –

2

これはありません。

CLRのアセンブリ言語であるCIL(Common Intermediate Language)にコンパイルされたC#(Javaの世界の「バイトコード」に似ています)。

CILには、「中かっこ」の概念はありません。 If-Elseコードブロックは条件分岐のような "branch"コマンドを使ってCILで表現されます。たとえば、スタックの最新の値が等しい場合、ラベルの後に続く "brc"はラベルにジャンプします。

したがって、カッコを入れるかどうかは関係ありません。生成されたCILコードでも同じ方法で表現されます。

+0

質問はコンパイルする時間パフォーマンス。 –

+0

彼は「.NETフレームワークまたはCLRがif文またはif-elseifのような決定文を処理する方法」 - 私はCLRについて答えました。 –

関連する問題