Renommer
Mise à jour : novembre 2007
Renommer est une fonctionnalité de refactorisation dans l'environnement de développement intégré (IDE) de Visual Studio qui offre un moyen simple de renommer les identificateurs pour les symboles de code tels que les champs, les variables locales, les méthodes, les espaces de noms, les propriétés et les types. Renommer peut être utilisé pour modifier les noms dans les commentaires et les chaînes et pour modifier les déclarations et les appels d'identificateur.
Remarque : |
---|
Lors de l'utilisation du contrôle de code source pour Visual Studio, obtenez la version la plus récente de sources avant de tenter d'exécuter la refactorisation de changement de nom. |
La refactorisation de changement de nom est disponible à partir des fonctionnalités Visual Studio suivantes :
Fonctionnalité |
Comportement de la refactorisation dans l'IDE |
||
---|---|---|---|
Éditeur de code |
Dans l'Éditeur de code, la refactorisation de changement de nom est disponible lorsque vous placez le curseur sur certains types de symbole de code. Lorsque le curseur est dans cette position, vous pouvez appeler la commande Renommer en tapant le raccourci clavier (CTRL + R, R) ou en sélectionnant la commande Renommer dans une balise active, un menu contextuel ou le menu Refactoriser. Lorsque vous appelez la commande Renommer, la boîte de dialogue Renommer apparaît. Pour plus d'informations, consultez Renommer, boîte de dialogue et Comment : renommer des identificateurs. |
||
Affichage de classes |
Lorsque vous sélectionnez un identificateur dans l'Affichage de classes, la refactorisation de changement de nom est disponible dans le menu contextuel et le menu Refactoriser. |
||
Explorateur d'objets |
Lorsque vous sélectionnez un identificateur dans l'Explorateur d'objets, la refactorisation de changement de nom est uniquement disponible dans le menu Refactoriser. |
||
Grille des propriétés du Concepteur Windows Forms |
Dans la Grille des propriétés du Concepteur Windows Forms, la modification du nom d'un contrôle déclenchera une opération de changement de nom pour ce contrôle. La boîte de dialogue Renommer n'apparaîtra pas. |
||
Explorateur de solutions |
Dans l'Explorateur de solutions, une commande Renommer est disponible dans le menu contextuel. Si le fichier source sélectionné contient une classe dont le nom de classe est identique au nom de fichier, vous pouvez utiliser cette commande pour renommer le fichier source et exécuter la refactorisation de changement de nom, simultanément. Par exemple, si vous créez une application Windows par défaut et renommez Form1.cs en TestForm.cs, le nom de fichier source Form1.cs changera en TestForm.cs et la classe Form1 et toutes les références à cette classe seront renommées TestForm.
Si le fichier source sélectionné ne contient pas une classe dont le nom est identique au nom de fichier, la commande Renommer de l'Explorateur de solutions renommera uniquement le fichier source et n'exécutera pas de refactorisation de changement de nom. |
Opérations de changement de nom
Lorsque vous exécutez Renommer, le moteur de refactorisation exécute une opération de changement de nom spécifique pour chaque symbole de code. Celles-ci sont décrites dans le tableau suivant.
Symbole de code |
Opération Renommer |
||
---|---|---|---|
Champ |
Modifie la déclaration et les utilisations du champ en fonction du nouveau nom. |
||
Variable locale |
Modifie la déclaration et les utilisations de la variable en fonction du nouveau nom. |
||
Méthode |
Modifie le nom de la méthode et toutes les références à cette méthode en fonction du nouveau nom.
|
||
Espace de noms |
Remplace le nom de l'espace de noms par le nouveau nom dans la déclaration, dans toutes les instructions using et dans les noms complets.
|
||
Propriété |
Modifie la déclaration et les utilisations de la propriété en fonction du nouveau nom. |
||
Type |
Modifie toutes les déclarations et toutes les utilisations du type en fonction du nouveau nom, y compris les constructeurs et les destructeurs. Pour les types partiels, l'opération de changement de nom se propagera à toutes les parties. |
Notes
Changement de nom des membres implémentés ou substitués
Lorsque vous utiliser Renommer pour modifier le nom d'un membre qui implémente/substitue ou est implémenté/substitué par les membres d'autres types, Visual Studio affiche une boîte de dialogue qui prévient que l'opération de changement de nom provoquera des mises à jour en cascade. Si vous cliquez sur Continuer, le moteur de refactorisation recherche itérativement et renomme tous les membres des types de base et des types dérivés qui ont une relation implémente/substitue avec le membre renommé.
L'exemple de code suivant contient des membres avec une relation implémente/substitue.
interface IBase
{
void Method();
}
public class Base
{
public void Method()
{ }
public virtual void Method(int i)
{ }
}
public class Derived : Base, IBase
{
public new void Method()
{ }
public override void Method(int i)
{ }
}
public class C : IBase
{
public void Method()
{ }
}
Dans l'exemple précédent, le changement de nom C.Method() renomme également Ibase.Method(), car C.Method() implémente Ibase.Method(). Ensuite, le moteur de refactorisation voit de manière récursive que l'interface Ibase.Method() est implémentée par Derived.Method() et renomme Derived.Method(). Le moteur de refactorisation ne renomme pas Base.Method(), parce que Derived.Method() ne substitue pas Base.Method(). Le moteur de refactorisation s'arrête alors, à moins que la case à cocher Renommer les surcharges ne soit activée dans la boîte de dialogue Renommer.
Si la case à cocher Renommer les surcharges est activée, le moteur de refactorisation renomme Derived.Method(int i) parce qu'il surcharge Derived.Method(), Base.Method(int i) parce qu'il est substitué par Derived.Method(int i), et Base.Method() parce que c'est une surcharge de Base.Method(int i).
Remarque : |
---|
Lorsque vous renommez un membre qui a été défini dans un assembly référencé, une boîte de dialogue explique que ce changement de nom provoquera des erreurs de génération. |
Changement de nom de propriétés de types anonymes
Lorsque vous renommez une propriété dans des types anonymes, l'opération de changement de nom se propagera aux propriétés dans les d'autres types anonymes qui ont les mêmes propriétés. Les exemples suivants illustrent ce comportement.
var a = new { ID = 1};
var b = new { ID = 2};
Dans le code précédent, le changement du nom de l'ID modifiera l'ID dans les deux instructions car elles ont le même type anonyme sous-jacent.
var companyIDs =
from c in companylist
select new { ID = c.ID, Name = c.Name};
var orderIDs =
from o in orderlist
select new { ID = o.ID, Item = o.Name};
Dans le code précédent, le changement du nom de l'ID renommera uniquement une instance d'ID car companyIDs et orderIDs n'ont pas les mêmes propriétés.
Voir aussi
Tâches
Comment : renommer des identificateurs
Concepts
Référence
Types anonymes (Guide de programmation C#)