3

このコードを検討してください...

Create(x,y,z,
null, null, null,
new Class1[     ] {
    new Class1(a,b,c),
    new Class1(a,b,c)
},
new Class2[] {
    new Class2(d,e,f    )
},
true);

パラメーターのコンマの後のスペースが不足していること、および Class1 配列定義と Class2 呼び出しに余分なスペースがあることに注意してください。

ドキュメントをフォーマットすると (Ctrl+E、D または Ctrl+K、D)、コードは次のようにフォーマットされます...

Create(x, y, z,
null, null, null,
new Class1[] {
    new Class1(a,b,c),
    new Class1(a,b,c)
},
new Class2[] {
    new Class2(d,e,f    )
},
true);

「外側の」コードのパラメータ コンマがスペースで適切にフォーマットされていることに注意してください (私の好みによると)。余分なスペースは Class1 配列定義から削除されています (これも私の好みです)。ただし、「内部」コードのパラメーター コンマは正しくフォーマットされておらず、余分なスペースが Class2 呼び出しに残ります。

コードにはまったく問題はありません。エラーなしでコンパイルおよび実行されます。

これは、中かっこを使用してネストされた複雑な呼び出しを作成するたびに発生します。コードをすべて分割して一時変数を使用することで、コードをより長く複雑にすることができると思いますが、それはやり過ぎのようです。

Visual Studio 2010 C# Express がこのようなネストされたコードを正しくフォーマットできないのはなぜですか? 他の誰かがこれを経験しましたか?必要に応じて、書式設定の設定を提供できます。前もって感謝します!:)

4

1 に答える 1

1

@tvwxyz: Ctrl+K、D でこの問題を再現できました。

しかし、興味深いことに、「} で完了したブロックを自動的にフォーマットする」を有効にすると、関数を閉じたときに正常に動作します (期待どおりに動作します)。

ツール -> オプション -> テキスト エディター -> C# -> 書式設定 -> 一般 -> 完成したブロックを自動的にフォーマットする }

于 2013-03-13T04:38:15.617 に答える