2009-08-25 12 views
2

参照なしにプライベート機能を検出できるツールはありますか? (冗長関数)冗長コードチェック

理由は、関数がいくつかの領域から作成され、呼び出されている可能性がありますが、プロジェクトが拡大して拡大するにつれて、これら2つの呼び出しが削除され、より良い代替方法にスワップされた可能性があります。しかし、この方法はまだ残っている可能性があります。私は、コードを見て、私的な機能を見つけて、もしそうでなければ、状況をユーザーに知らせるかどうかを調べる便利なツールがあるかどうか疑問に思っていました。

自分自身を作成するのは難しいことではありませんが、コードを含むファイルでこれを行うことができるアクセシブルなアプリケーションがあるかどうか疑問に思っていましたか?

私のコードはC#ですが、この質問にはさまざまなコーディング言語が含まれていると思います。

+1

重複http://stackoverflow.com/questions/614096/clean-up-unwanted-code-c/935943 –

答えて

2

コードに単体テストがある場合は、NCoverを実行するとどこからでも呼び出されないメソッドを識別できます。単体テストがない場合は、単体テストを開始するために使うのは良い言い訳です。

一般的には、ほとんどの言語でコードカバレッジツールが適していると思われます。

+0

これに同意しますが、私も最近テストを0回行ってプロジェクトを開始しましたが、そのような「デッドコード」も削除したいと考えています。そうすることで、テストを書くためのコードの量を減らすことができます! – MPritchard

+0

@Martin - テストなし。幸せ!あなたが呼び出すことを確認するためにVisual Studioの検索を使用することができる十分な小さなセットと呼ばれていないプライベートメソッドを作成するパブリックメソッドの単体テストの作成を開始する場合。それは、私が知っているのは、あなたがこの場所から来ている場所です。 :) – Rob

+0

プロジェクトのユニットテストはありませんが、それはSharePointだからです:-D。 – Colin

0

Eclipseは自動的にJava用ですが、C#と同じことができるかどうかはわかりません。

0

さらに、「実際に使用されていないプライベートメソッドをC#コンパイラで削除していますか?

私の推測は、いいえ、あなたは決して知りません!

EDIT:

は実は、私は方法が使用されている場所を伝えるのは難しいかもしれないと思います。それはプライベートであるかもしれませんが、それでもイベントハンドラとして使用できます。チェックすることは不可能ではありませんが、私はその面が少し難しいと確信しています。

+2

Reflectionを介してアクセスして呼び出すことができるため、コンパイラがプライベートやその他の方法で使用されていないメソッドを削除するのは「悪いこと」(tm)です。実際、私は、VS Unit Testフレームワークが単体テスト/内部メソッドをテストできるようにするコードを生成すると信じています。 – Rob

3

ReSharperは仕事をします。

+0

あなたに人々にどのように教えてもらうと役に立ちます – MPritchard

+0

ReSharperは呼び出されていないプライベート関数をマークします: * VSコードウィンドウの右側に黄色のマークが付きます。 *メソッド名がグレー表示されています。 *カーソルが関数名にある場合は赤い電球。 ALT + RETURNは、「未使用のメソッドを削除する」を提供します。それでおしまい –