次の方法で共有


CodeElement2.RenameSymbol メソッド

オブジェクトの宣言名を変更し、現在のプロジェクトの範囲内にあるこのオブジェクトに対するすべてのコード参照を更新します。

名前空間:  EnvDTE80
アセンブリ:  EnvDTE80 (EnvDTE80.dll 内)

構文

'宣言
Sub RenameSymbol ( _
    NewName As String _
)
void RenameSymbol(
    string NewName
)
void RenameSymbol(
    String^ NewName
)
abstract RenameSymbol : 
        NewName:string -> unit
function RenameSymbol(
    NewName : String
)

パラメーター

  • NewName
    型 : String

    必須。 名前を変更するシンボルの名前です。

解説

(現在のプロジェクトの範囲内で) 名前の変更の一部を完了できない場合、メソッドはエラーを返します。

注意

遅延バインドされた RenameSymbol や ElementID を呼び出すことはできません。(たとえば、DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElements.Item("Class1").RenameSymbol("Class2"))。呼び出しを実行する前に、CodeElement2 インターフェイスに対して、明示的にオブジェクトをキャストする必要があります。

EnvDTE80 のコード要素 (これ以降、"Code*2 オブジェクト" と呼びます) は、EnvDTE のコード要素から派生します。たとえば、CodeClass2CodeClass から派生し、CodeElement2CodeElement から派生します。Visual Studio の内部では、どちらのアセンブリの場合も、すべてのコード要素が順に CodeElement2 にキャストされます。したがって、論理的には、CodeClass2 であるかのように動作し、最終的には CodeElement2 から派生します。

しかし、2 つの要素は、実際には 2 つの個別の継承階層に存在するため、遅延バインダーは Code*2 オブジェクトで CodeElement2 メソッドを参照できません。継承されたメソッドが変換を持つ関連インターフェイスすべてで明示的に定義されている主にEnvDTE 動作、プリプロセッサ マクロを使用すると、インターフェイスのように定義します。EnvDTE80 インターフェイスも同様の継承スキームを使用して、のみプリプロセッサ ステートメントを使用せずに定義されます。これは、冗長なプロパティが除去されるため、より洗練された解決方法ですが、プロパティを遅延バインディングで呼び出すことができません。この問題を解決するには、呼び出しを実行する前に、CodeElement2 インターフェイスに対して明示的にオブジェクトをキャストします。

また、特定の種類の編集を行うと、クラス、構造体、関数、属性、デリゲートなどのコード モデル要素が非確定的な値になる場合があります。つまり、これらの要素の値は、常に同じ値になるとは限りません。詳細については、「コード モデルを使用したコードの調査 (Visual Basic)」で、コード モデル要素値を変更する方法についての説明を参照してください。

.NET Framework セキュリティ

  • 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

関連項目

CodeElement2 インターフェイス

EnvDTE80 名前空間

その他の技術情報

方法 : オートメーション オブジェクト モデルのコード例をコンパイルおよび実行する

コード モデルを使用したコードの調査 (Visual Basic)

コード モデルを使用したコードの調査 (Visual C#)

オートメーション エクステンダーの実装と使用