2016-06-13 19 views
5

C#開発者として、私はMicrosoftのコード解析の恩恵を受けました。しかし、F#では、コード分析は開発サイクルの統合部分ではないようです。 F#プロジェクトでCAを有効にするにはしばらく時間がかかりましたが、これはblog helpedです。 CAを有効にしたので、「間違った」警告が出るようです。例えば、私は、デフォルトでは構造的平等を期待しているF#のコード解析

type Account = {Number : string} 

としてレコード型を宣言しました。 This blogは、数が同じであるAcccount型の2つのインスタンスが等しいことを示しています。なぜ、コード分析は、「Account」は、IComparableを実装しているので演算子 '!='を定義すべきですか?確かに、これはC#クラスでしたが、私はそれらのすべてのフープを飛ばしなければなりませんでしたが、F#ではこれが自動的に起こるはずです。

私は「Microsoft All Rules」ルールセットを適用しています。これらはF#には当てはまりませんか?もしそうなら、使用すべきルールセットがありますか?

+1

これらのルールは、C#を目的としています。彼らはあなたがC#を使用していると仮定し、それに適した警告をあなたに伝えます。あなたは本当にそれらのルールが必要ですか? F#での私の経験では、言語そのものが私を正しい方向に導くことが分かりました。私はそのための外部ツールは必要ありません。 –

+0

参照した最初のブログ投稿を見ると、コード分析を実行する前に、 'Targets'ファイルが明示的に言語をチェックすることがわかります。それには理由があると思いませんか? –

+1

@FyodorSoikin確かに私はCAを得るためにシステム全体のファイルを修正しなければならないと思ったのですが、いくつかのルールはF#プロジェクトと関係があります。私はまた、この質問を読んでいる誰かが私がダウンロードできるF#ルールセットを指摘することを望んでいます(そうしたものが存在する場合)。 – SimonAx

答えて