2011-06-21 1 views
6

私はReSharperを使用して自分のコードをリファクタリングしています.ReSharperの提案の1つは、常に真であるifステートメントの代わりにそれぞれのブランチを使用することです。それぞれのブランチとは何ですか? (ReSharperによって提案される)

私は

if (myVar != null){ 
    //code 
} 

を持っていると私は、コードは以下の

{ 
    //code 
} 

ようなもので、それぞれの枝が、これはif文の短いカットされ適用されますか? これは何のために使われますか? カメブラケットの違いは何ですか?

ありがとうございます。

答えて

10

ブロックがそこにとどまる必要があるか、セマンティクスが変更されます。

中括弧を削除すると、分岐ブロック内で宣言された変数の範囲が変更されます。潜在的に競合/隠蔽(ラムダ)変数があると、これは驚きにつながります。 ReSharperのには、コードの選択ブロック、Ctrl-Alt-J, 7をブロックで囲むように:)

+0

素晴らしい!あなたの大きな説明をお寄せいただきありがとうございます。私は今、中括弧が残っている理由を理解できるようになりました。変数の範囲を保持するためだけに中括弧を使用できるかどうかはわかりませんでした。ありがとう! – Amra

0

、中括弧を削除いずれか一方にカーソルを置き、Altキーは、Enterを押し、

再導入ブレース「サスペンダー削除」をするには6.0このコマンドは、変数宣言が内部にない場合は中カッコも削除します。

関連する問題