さて、いくつか遊んだ後、解決策があります。この記事を使用してこのソリューションにたどり着きました。私はStyleCopを使用しているため、それを入手してインストールする必要があります。次に、私の C# プロジェクトMathematicsAnalyzerをダウンロードできます。
まず、すべての型変換の不一致を説明したわけではありません。実際、私は 1 つの部分だけを収容します。
基本的に、行に「double」とそれに続くスペースが含まれているかどうかを確認します。クラスの終わりが double またはその他の任意の数になる可能性があるため、誤った警告につながる可能性があることは知っていますが、型を適切に分離する方法を理解するためにそれを残します。
一致が見つかった場合は、次の正規表現と一致するかどうかを確認します。
double[ ][A-Za-z0-9]*[ ]?=(([ ]?[0-9]*d[ ]?/[ ]?[0-9]*;)|[ ]?[0-9]*[ ]?/[ ]?[0-9]*d;)
この正規表現に一致しない場合は、違反を追加します。この正規表現が一致するのは、次のいずれかです。
- ダブル i=4d / 100;
- ダブル i = 4d / 100;
- ダブル i = 4 / 100d;
- ダブル i = 4/100d;
- ダブル i = 4 /100d;
- ダブル i = 4/100d;
- ダブル i=4d / 100;
- ダブル i=4 / 100d;
- ダブル i=4/100d;
上記のいずれも違反にはなりません。現在書かれているように、「d」が使用されていないと、違反がスローされます。オペランドを明示的にキャストする他の方法を考慮して、追加のロジックを追加する必要があります。これを書いているときに、両方のオペランドに 'd' があると例外がスローされる可能性が高いことに気付きました。おっと。
そして最後に、StyleCop に違反を適切に表示させることができませんでした。ルールが存在しないというエラーが何度も表示され、2 番目の目を見ても解決策が見つからなかったので、ハッキングしました。エラーは、見つけようとしていたルールの名前を示しているので、ルールの名前を説明的なものとして入力し、その中に行番号を含めました。
カスタム ルールをインストールするには、MathematicalAnalyzer プロジェクトをビルドします。Visual Studio を閉じて、DLL を StyleCop インストール ディレクトリにコピーします。Visual Studio を開くと、StyleCop 設定にルールが表示されます。私が使用した記事のステップ 5 と 6 は、それを行う場所を示しています。
これは、ソリューション全体で一度に 1 つの違反しか取得しないため、表示された違反を修正し、StyleCop を再度実行して次の違反を見つける必要があります。それを回避する方法があるかもしれませんが、私はジュースを使い果たし、ここで停止しました.
楽しみ!