1

プロジェクトのネストされたサブフォルダーにかなりの数のソースファイルがあります。置き換えようとしている4つの異なるクラスがあり、それらが割り当てられているソース内のすべての場所(ヒープ+スタック)を見つけたいと考えています。

残念ながら、インクルード構造が不十分なため、Visual Studioの「ソリューション全体の検索」機能は信頼できません。そのため、ソースファイル内を手動で検索することにしました。

私が信じていることは十分です:

"new CLASS1("ヒープ用に3つのトークンの間にスペースを任意に組み合わせて "^CLASS2" 、スタック割り当て用にクラス名が行の先頭(スペースを除く)から始まると言いたいところです。

スタック割り当てについて[^a-zA-Z] CLASS3 [a-zA-Z]+は、試行されましたが、正規表現に精通していないため、SOでこれを実行したいと思いました。ヒープの場合、上記の文字列だけが試されましたが、単純な余分な間隔がそのパターンを壊してしまうことを知っているので、それが正しくないことがわかります。

誰かが問題を解決するためのより良いマッチャーまたは完全に良い方法を思い付くことができますか?

ありがとうございました、

AK

4

2 に答える 2

2

クラスのすべての使用を確実に排除する確実な方法の1つは、クラスの定義を削除するか、クラスの重要な部分を無効にすることです。次に、プロジェクトをコンパイルすると、クラスが使用されているすべての状況でエラーが発生します。すべてが正常にコンパイルされると、すべてが置き換えられたことがわかります。

もちろん、単純なケースの検索/置換を使用して、残りのケースを手動で修正することで、処理を少し高速化できます。

于 2012-12-07T17:20:34.337 に答える
2

コンストラクターをプライベートにすると、オブジェクトを作成しようとするたびにエラーメッセージが表示されます。

プライベートnew()演算子を作成して、ヒープ割り当てで同じトリックを実行します。

編集:それ自体のインスタンスを作成するクラス実装(静的メソッドを含む)内のコードに注意してください。このようなコンテキストからプライベートコンストラクターを呼び出すことは有効であり、エラーは発生しません。また、友達のクラス/機能にも注意してください。

于 2012-12-07T17:24:18.863 に答える