2011-11-14 6 views
1

私は現在、すべてのデータをグローバル定義と呼ばれる1つのモジュールにすべてのデータをパブリックフィールドとして格納する古いVisual Basic DLL(VB.Net)をリファクタリングしています。約200のフィールドがありますが、すべてのコードの周りに何千回を参照:DLL自体でモジュールをクラスにリファクタリングする:共有フィールドをインスタンスフィールドに変更する

Public Module Globaldefinitons 
    Public a As Short 
    ... 
    Public zz10 As Double 
End Module 

を、Globaldefinitionsをインポートした後、これらのフィールドは、その名前(ノーモジュールのプレフィックス)を参照されます

a = 5 

モジュールを非共有フィールドのクラスに変更する必要があります。つまり、これらの何千ものリファレンスは、そのクラスのインスタンスを参照する必要があります。

globalDefinitionsInstance.a = 5 

これを効率的に行うにはどうすればよいですか?

ソースで動作する正規表現はフラットになります。 Re-SharperやCodeRushのようなリファクタリングツールは、この機能を提供していないようです。 Visual Studio 2010は自動的にそれを行うこともできません。

答えて

1

これを変更する方法は次のとおりです。 GlobalDefinitions内のすべてのフィールドに一意の名前Bad_Name_aに名前を変更するには、以下の

  • 使用Visual Studioのリファクタリング、名前の変更を行います。これにより、すべての名前に一致する名前が非常に簡単に名前に一致するようになります
  • Bad_Name_aglobalDefinitionsInstance.Bad_Name_aをグローバル検索して置き換えます。ここでも正規表現の必要はありません。名前や交換は独特
  • 使用Visual Studioのリファクタリングの名前の変更は、あなたは、私が最初のようである何かにaの名前を変更するには、組み込みのVS 2010のリネーム機能を使用することになり
+0

ありがとうございます。これはまだまだ多くの作業になりますが、単純な検索と置き換えよりも安全です。 –

0

を選択するより良い名前に名前を変更します可能な限りユニークです(例:ReplaceThisSillyPropertyNameNow)。次に、グローバル検索を実行して、新しい名前を希望する置換えに置き換えることができます。

関連する問題