2011-09-15 7 views
2

なぜ主なコンストラクタのargsは、型定義の中の開き括弧よりもインデントしなければならないのでしょうか?呼び出されると型名でインデントされることがあります。定義と呼び出しのための異なる書式設定

type AnIncrediblyLaboriouslyEternallyLongTypeName(arg1, arg2, 
     arg3, arg4) = //WARNING: Possible incorrect indentation 
    class end 

let x = AnIncrediblyLaboriouslyEternallyLongTypeName(
      1, 2, 3, 4) //works 

ソリューションは、あなたのセカンドモニタの左端を超えて引数をインデントすることです:

type AnIncrediblyLaboriouslyEternallyLongTypeName(arg1, arg2, 
                arg3, arg4) = 
    class end 

ルールは、これらの2つのシナリオで異なっているなぜ私は思ったんだけど。

これはメソッドにも適用されます。私は、一次コンストラクタを例として選んだだけです。

答えて

2

私が思い出すが、この

type AnIncrediblyLaboriouslyEternallyLongTypeName 
     (arg1, arg2, arg3, arg4) = // works 
    class end 

も許可されていることに注意しません。

+0

私はまだC#コードの書式設定が機能しない理由を理解できません。 :-) – Daniel

+0

コンパイラパーサーがそのようなケースを処理しないためにおそらく動作しません:)。この場合、 '('は新しいブロックを作成し、 ')'が同じレベルにない場合は動作しません – Ankur

関連する問題