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
    型別:System.String
    必要項。所要重新命名的符號名稱。

備註

如果重新命名的任何部分無法完成 (在目前專案範圍內),則方法會傳回錯誤。

注意事項注意事項

您不能在晚期繫結呼叫 RenameSymbol 或 ElementID(例如,DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElements.Item("Class1").RenameSymbol("Class2"))。 必須明確地將這個物件轉換為 CodeElement2 介面之後才能進行呼叫。

EnvDTE80 (之後稱為 Code*2 物件) 中的程式碼項目係衍生自 EnvDTE 中的這些項目 (例如,CodeClass2 衍生自 CodeClass,而且 CodeElement2 衍生自 CodeElement)。 Visual Studio 中所有的程式碼項目 (這兩個組件中) 會依次轉換為 CodeElement2。所以舉例來說,邏輯上它就像是最終會衍生自 CodeElement2CodeClass2

由於這兩個項目在事實上位於兩個不同的繼承階層架構中,不過,晚期繫結者無法查閱 Code*2 物件上的 CodeElement2 方法。EnvDTE 基本上以相同方式運作,但使用前置處理器巨集使介面的定義能讓繼承的方法會在存在轉換的所有相關介面上明確定義。 EnvDTE80 介面的定義會使用相似的繼承配置進行,而不需要使用前置處理器陳述式。由於這個方案會排除多餘的屬性,所以會是個更雅緻的方案,但是結果則會是無法在晚期繫結呼叫這些屬性。若要解決這個問題,請明確地將這個物件轉換為 CodeElement2 介面之後才進行呼叫。

另外像是類別、建構、函式、屬性 (Attribute)、委派 (Delegate) 等這些程式碼模型元素的值,在經過特定方式的編輯之後也可以為非決定性,即表示這些值將不再固定。如需詳細資訊,請參閱使用程式碼模型探索程式碼 (Visual Basic) 的<程式碼模型項目值可以變更>一節。

.NET Framework 安全性

請參閱

參考

CodeElement2 介面

EnvDTE80 命名空間

其他資源

HOW TO:編譯和執行 Automation 物件模型程式碼範例

使用程式碼模型探索程式碼 (Visual Basic)

使用程式碼模型探索程式碼 (Visual C#)

實作及使用 Automation 擴充項