Sdílet prostřednictvím


Refaktoring pro přejmenování (C#)

Přejmenování je refactoring funkce aplikace Visual Studio integrované vývojové prostředí (IDE), který poskytuje snadný způsob přejmenování identifikátorů pro kód symboly jako pole, lokální proměnné, metody, obory názvů, vlastnosti a typy.Přejmenování lze změnit názvy v komentářích a v řetězcích a prohlášení a volání identifikátor změnit.

[!POZNÁMKA]

Při použití ovládacího prvku zdroje pro sadu Visual Studio, získáte nejnovější verzi zdroje před pokusu přejmenovat optimalizace struktury programu.

Optimalizace struktury programu přejmenovat je k dispozici následující funkce aplikace Visual Studio:

Funkce

Optimalizace struktury programu v IDE chování

Editor kódu

Při umístění kurzoru na určité typy kódu symboly přejmenovat optimalizace struktury programu je k dispozici v editoru kódu.Pokud je kurzor v této pozici, můžete vyvolat Přejmenovat zadáním klávesovou zkratku (CTRL + R, CTRL + R) nebo výběrem příkazu Přejmenovat inteligentní značky, místní nabídky příkazu nebo Refactor nabídce.

Zobrazení tříd

Vyberete-li identifikátor třídy zobrazení, přejmenovat optimalizace struktury programu je k dispozici v místní nabídce a Refactor nabídce.

Prohlížeč objektů

Vyberete-li identifikátor objektu prohlížeče, přejmenovat optimalizace struktury programu je k dispozici pouze z Refactor nabídce.

Vlastnost mřížky Návrháře model Windows Forms

V Mřížky vlastností model Windows Forms návrháře, změna názvu prvku zahájí operaci přejmenování tohoto ovládacího prvku.Přejmenovat se nezobrazí dialogové okno.

Průzkumník řešení

V Aplikaci Solution Explorer, Přejmenovat příkaz je k dispozici v místní nabídce.Pokud vybraný zdrojový soubor obsahuje třídy, jejíž název třídy je stejný jako název souboru, můžete použít příkaz současně přejmenovat zdrojový soubor a spustit přejmenovat optimalizace struktury programu.

Vytvoření aplikace pro systém Windows výchozí a pak přejmenujte na TestForm.cs Form1.cs, například název zdrojového souboru Form1.cs se změní na TestForm.cs a třída Form1 a všechny odkazy, že třída bude přejmenován na TestForm.

[!POZNÁMKA]

Zpět příkaz (CTRL + Z) pouze zpět přejmenovat optimalizace struktury programu v kódu a ne změnit název souboru zpět na původní název.

Pokud vybraný zdrojový soubor neobsahuje třídu, jejíž název je stejný jako název souboru Přejmenovat v Aplikaci Solution Explorer pouze přejmenuje zdrojový soubor a spustit přejmenovat optimalizace struktury programu.

Operace přejmenování

Po spuštění Přejmenovat, refactoring modul provádí určitou operaci přejmenovat pro každý symbol kód podle následující tabulky.

Symbol kódu

Operace přejmenování

Pole

Změní deklarace a použití této pložky na nový název.

Lokální proměnné

Změní deklarace a použití tohoto pole na nový název.

Metoda

Změní název metody a všechny odkazy na danou metoda na nový název.

[!POZNÁMKA]

Při přejmenování metodu rozšíření operace přejmenování rozšíří na všechny instance metody, které jsou v rozsahu bez ohledu na to, zda metoda rozšíření je používán jako statickou metodu nebo metody instance.Další informace naleznete v tématu Metody rozšíření (Průvodce programováním v C#).

Obor názvů

Změní název oboru názvů na nový název v prohlášení, všechny using prohlášení a plně kvalifikované názvy.

[!POZNÁMKA]

Při přejmenování oboru názvů Visual Studio také aktualizuje Výchozí obor názvů vlastnost aplikace stránky Designer projektu.Tuto vlastnost nelze obnovit výběrem zpět z Upravit nabídce.Obnovit Výchozí obor názvů hodnota vlastnosti musí upravte vlastnost Designer projektu.Další informace naleznete v tématu Stránka aplikace.

Property

Změní deklarace a použití tohoto pole na nový název.

Type

Nový název, včetně konstruktory a destruktory změní všechny deklarace a všech způsobů použití typu.Pro částečné typy operace přejmenování budou rozšířeny mezi všechny části.

Identifikátor přejmenování

  1. Vytvoření aplikace s názvem RenameIdentifiera potom nahradit Program s následujícím kódem příkladu.

    class ProtoClassA
    {
        // Invoke on 'MethodB'.
        public void MethodB(int i, bool b) { }
    }
    
    class ProtoClassC
    {
        void D()
        {
            ProtoClassA MyClassA = new ProtoClassA();
    
            // Invoke on 'MethodB'.
            MyClassA.MethodB(0, false);
        }
    }
    
  2. Umístěte kurzor na MethodB, buď v metodě prohlášení nebo volání metody.

  3. Z Refactor nabídce Přejmenovat.Zobrazí se dialogové okno Přejmenovat.

    Můžete také klepnout pravým tlačítkem kurzor, přejděte na příkaz Refactor kontextové nabídky a potom na Přejmenovat zobrazení Přejmenovat dialogové okno.

  4. V Nový název pole, zadejte MethodC.

  5. Vyberte Hledat v komentářích políčko.

  6. Klikněte na tlačítko OK.

  7. V Náhled změn dialogové okno, klepněte na tlačítko použít.

Přejmenování identifikátor pomocí inteligentní značky

  1. Vytvoření aplikace s názvem RenameIdentifiera potom nahradit Program s následujícím kódem příkladu.

    class ProtoClassA
    {
        // Invoke on 'MethodB'.
        public void MethodB(int i, bool b) { }
    }
    
    class ProtoClassC
    {
        void D()
        {
            ProtoClassA MyClassA = new ProtoClassA();
    
            // Invoke on 'MethodB'.
            MyClassA.MethodB(0, false);
        }
    }
    
  2. V prohlášení pro MethodB, zadejte nebo backspace přes identifikátor metody.Inteligentní značka řádku se zobrazí pod tento identifikátor.

    [!POZNÁMKA]

    Můžete vyvolat pouze přejmenovat pomocí inteligentní značky v prohlášení identifikátor optimalizace struktury programu.

  3. Zadejte klávesovou zkratku SHIFT + ALT + F10 a potom stiskněte klávesu šipka dolů zobrazte nabídku inteligentní značky.

    -nebo-

    Umístěte ukazatel myši do řádku inteligentní značky zobrazit inteligentní značky.Potom přesuňte ukazatel myši na inteligentní značku a klepněte na šipku dolů zobrazte nabídku inteligentní značky.

  4. Vyberte Přejmenovat '<identifer1>'do'<identifier2>' vyvolat náhled změn kódu bez optimalizace struktury programu přejmenovat položku nabídky.Všechny odkazy na <identifer1> bude automaticky aktualizována na <identifier2>.

    -nebo-

    Vyberte s náhledem přejmenovat položky nabídky vyvolat přejmenovat optimalizace struktury programu s náhledem změny kódu.Náhled změn se zobrazí dialogové okno.

Poznámky

Přejmenování implementované nebo Potlačené členů

Když je Přejmenovat člen, který implementuje/lokální změny nebo je implementována/přepsána členy v jiných typech Visual Studio zobrazí dialogové okno oznamující operace přejmenování způsobí kaskádových aktualizací.Pokud klepnete na tlačítko Pokračovat, vyhledá rekurzivně refactoring motoru a přejmenuje všechny členy v base a odvozené typy, které implementuje/přepis vztahy s členem přejmenováním.

Následující příklad kódu obsahuje členy se implementuje/přepis vztahy.

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()
    { }
}

V předchozím příkladu přejmenování C.Method() také přejmenuje Ibase.Method() protože C.Method() implementuje Ibase.Method().Dále rekurzivně motoru refactor vidí, Ibase.Method() je implementována Derived.Method() a přejmenuje Derived.Method().Nepřejmenuje motoru refactor Base.Method(), protože Derived.Method() nemá přednost před Base.Method().Refactoring stroj přestane zde nemáte Přejmenovat přetížení změnami Přejmenovat dialogové okno.

Pokud Přejmenovat přetížení je kontrolována přejmenuje motoru refactor Derived.Method(int i) protože přetěžuje Derived.Method(), Base.Method(int i) protože je přepsána Derived.Method(int i), a Base.Method() protože je nadměrného počtu Base.Method(int i).

[!POZNÁMKA]

Při přejmenování člen, který byl definován v odkazované sestavení dialogové okno vysvětluje, že přejmenování způsobí chyby sestavení.

Přejmenování vlastnosti anonymní typy

Při přejmenování vlastnost v anonymních typů operace přejmenování bude šířit vlastnosti v jiných typech anonymní, které mají stejné vlastnosti.Následující příklady ilustrují toto chování.

var a = new { ID = 1};
var b = new { ID = 2};

V předcházejícím kódu přejmenování ID se ID v obou příkazech protože mají stejné základní anonymní typ.

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};

V předcházejícím kódu přejmenování ID bude přejmenovat pouze jednu instanci ID protože companyIDs a orderIDs nemají stejné vlastnosti.

Viz také

Referenční dokumentace

Anonymní typy (Průvodce programováním v C#)

Koncepty

Refaktoring (C#)