CodeElement2.RenameSymbol(String) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Modifie le nom déclaré d'un objet et met à jour toutes les références de code à l'objet dans la portée du projet actuel.
public:
void RenameSymbol(System::String ^ NewName);
public:
void RenameSymbol(Platform::String ^ NewName);
void RenameSymbol(std::wstring const & NewName);
[System.Runtime.InteropServices.DispId(201)]
public void RenameSymbol (string NewName);
[<System.Runtime.InteropServices.DispId(201)>]
abstract member RenameSymbol : string -> unit
Public Sub RenameSymbol (NewName As String)
Paramètres
- NewName
- String
Obligatoire. Nom du symbole à renommer.
- Attributs
Remarques
Si une partie du changement de nom ne peut pas être effectuée (dans la portée du projet actuel), la méthode retourne une erreur.
Notes
Vous ne pouvez pas appeler RenameSymbol ou à ElementID liaison tardive. (Par exemple, DTE.ActiveDocument.ProjectItem.FileCodeModel.CodeElements.Item("Class1").RenameSymbol("Class2") .) Vous devez effectuer un cast explicite de l’objet vers l' CodeElement2 interface avant d’effectuer l’appel.
Les éléments de code dans EnvDTE80 (ci-après appelés objets code * 2) dérivent de ceux de EnvDTE . (Par exemple, CodeClass2 dérive de CodeClass et CodeElement2 dérive de CodeElement .) En interne dans Visual Studio , tous les éléments de code (dans les deux assemblys) sont ensuite castés en CodeElement2 . Ainsi, logiquement, c’est comme si CodeClass2 , par exemple, dérive finalement de CodeElement2 .
Étant donné que les deux éléments sont en réalité dans deux hiérarchies d’héritage distinctes, le offrir ne peut pas Rechercher des CodeElement2 méthodes sur des objets code * 2. EnvDTE fonctionne essentiellement de la même façon, mais l’utilisation des macros de préprocesseur permet de définir les interfaces de telle sorte que les méthodes héritées soient définies explicitement sur toutes les interfaces associées pour lesquelles des conversions existent. EnvDTE80 les interfaces sont définies à l’aide d’un schéma d’héritage similaire, uniquement sans l’utilisation d’instructions de préprocesseur. Il s’agit d’une solution plus élégante, car elle élimine les propriétés redondantes, mais le résultat est que les propriétés ne peuvent pas être appelées à liaison tardive. Pour contourner ce problème, effectuez un cast explicite de l’objet vers l' CodeElement2 interface avant d’effectuer l’appel.
En outre, les valeurs des éléments de modèle de code, tels que les classes, les structs, les fonctions, les attributs, les délégués, etc., peuvent être non déterministes après avoir effectué certains genres de modifications, ce qui signifie que leurs valeurs ne peuvent pas être utilisées pour toujours rester identiques. Pour plus d’informations, consultez la section les valeurs d’élément de modèle de code peuvent changer dans la découverte de code à l’aide du modèle de code (Visual Basic).