2

1つのフォルダーに60ほどのクラスがあり、それらのクラスを継承するための基本クラスを作成しました。

Visual Studioのコピーアンドペースト方法以外にこれを自動的に行う方法はありますか?

resharperにそのための機能があるといいのですが、見つかりません。

4

3 に答える 3

3

Visual Studio の検索と置換機能を使用してすべての宣言を検索し、それらを基本クラスから継承する宣言に置き換えることで、切り取りと貼り付けのプロセスを自動化できます。

  • [Ctrl+H] を押してクイック置換を開きます
  • public class {:i}「検索対象」ボックスに入力します
  • public class \1 : MyBaseClass「置換:」ボックスに入力します。
  • [探す場所] ボックスで [現在のプロジェクト] を選択します。
  • [使用:] チェックボックスをオンにして、ドロップダウンで [正規表現] を選択します。

クリック[Find Next]を続けて、次に出現するクラス宣言を見つけます。変更する 60 の宣言のいずれかが検索で強調表示された場合は、 をクリックします。[Replace]それ以外の場合は、 をクリックし続けます[Find Next]

于 2012-09-07T15:11:40.987 に答える
1

この正規表現はうまくいくはずです:

(.*)?(class .*)?(.*)?{

これは、任意の数の文字に一致し、その後に「class」という単語が続き、その後に任意の数の文字が続き、その後に中括弧が続きます。

これを置換テキストとして使用して、すべてのコード ファイル内で置換を実行します。

$1 : yourBaseClassName {

これは、js 正規表現を処理するこのオンライン正規表現バリデーターでテストされており、ファイルがまだサブクラス/インターフェースを実装していないことを前提としています。生ですが、出発点にすることができます。

于 2012-09-07T15:30:04.227 に答える
0

ツールを作成して、ビルド前のイベントとして使用できます。

そのツールは: MyBaseClass、次のようなものの右側に書き込む、単純なサイレントコマンドライン実行可能ファイルである可能性がありますclass MyClassName
そして、引数としてパスを取り、そこにあるすべての*.csファイルに対してそれを実行します。

これは、私が知る限り、あなたが達成したいことに最も近いものです。

PostSharp (無料ではありません)などのツールを使用してAOP(属性指向プログラミング)を活用することもできますが、すべてのクラスに属性をタグ付けする必要があり、目的が果たせなくなります。

于 2012-09-07T15:06:52.187 に答える