Cambiar nombre

Actualización: noviembre 2007

Cambiar nombre es una característica de refactorización del entorno integrado de desarrollo (IDE) de Visual Studio que proporciona una manera fácil de cambiar el nombre de los identificadores para los símbolos del código, tales como campos, variables locales, métodos, espacios de nombres, propiedades y tipos. Cambiar nombre se puede utilizar para cambiar los nombres en los comentarios y en las cadenas, además de en las declaraciones y las llamadas de un identificador.

Nota:

Cuando utilice control de código fuente para Visual Studio, obtenga siempre la última versión de los archivos de código fuente antes de intentar ejecutar la refactorización de cambio de nombre.

La operación de refactorización Cambiar nombre está disponible en las características de Visual Studio siguientes:

Característica

Comportamiento de la refactorización en el IDE

Editor de código

En el editor de código, la operación de refactorización Cambiar nombre está disponible cuando se sitúa el cursor en ciertos tipos de símbolos de código. Cuando el cursor está en esta posición, puede invocar el comando Cambiar nombre; para ello, escriba el método abreviado de teclado (CTRL + R, R), o bien, seleccione el comando Cambiar nombre desde una etiqueta inteligente, un menú de acceso directo o el menú Refactorizar. Al invocar el comando Cambiar nombre, aparece el cuadro de diálogo Cambiar nombre. Para obtener más información, vea Cambiar nombre (Cuadro de diálogo) y Cómo: Cambiar el nombre de los identificadores.

Vista de clases

Al seleccionar un identificador en la Vista de clases, la operación de refactorización Cambiar nombre está disponible en el menú de acceso directo y en el menú Refactorizar.

Explorador de objetos

Cuando se selecciona un identificador en el Explorador de objetos, la operación de refactorización Cambiar nombre sólo está disponible en el menú Refactorizar.

Cuadrícula de propiedades del Diseñador de Windows Forms

En la Cuadrícula de propiedades del Diseñador de Windows Forms, cuando se cambia el nombre de un control se inicia una operación Cambiar nombre para ese control. No aparece el cuadro de diálogo Cambiar nombre.

Explorador de soluciones

En el Explorador de soluciones, el comando Cambiar nombre está disponible en el menú de acceso directo. Si el archivo de código fuente seleccionado contiene una clase cuyo nombre es el mismo que el del archivo, puede utilizar este comando para, simultáneamente, cambiar el nombre del archivo de código fuente y ejecutar la operación de refactorización Cambiar nombre.

Por ejemplo, si crea una aplicación predeterminada para Windows y luego cambia el nombre de Form1.cs por TestForm.cs, entonces el nombre del archivo de código fuente Form1.cs cambiará a TestForm.cs, y la clase Form1 y todas las referencias a ella también recibirán el nuevo nombre TestForm.

Nota:
El comando Deshacer (CTRL+Z) únicamente deshará la operación de refactorización Cambiar nombre dentro del código, pero no restablecerá el nombre original del archivo.

Si el archivo de código fuente seleccionado no contiene una clase cuyo nombre sea el mismo que el del archivo, el comando Cambiar nombre del Explorador de soluciones únicamente cambiará el nombre del archivo de código fuente y no ejecutará la operación de refactorización Cambiar nombre.

Operaciones Cambiar nombre

Al ejecutar Cambiar nombre, el motor de refactorización realiza una operación de cambio de nombre específica para cada símbolo de código, que se describe en la tabla siguiente.

Símbolo de código

Operación Cambiar nombre

Campo

Cambia la declaración y los usos del campo por el nuevo nombre.

Variable local

Cambia la declaración y los usos de la variable por el nuevo nombre.

Método

Cambia el nombre del método y todas las referencias a ese método por el nuevo nombre.

Nota:
Al cambiar el nombre de un método de extensión, la operación de cambio de nombre se propaga a todas las instancias del método que están dentro del ámbito, sin tener en cuenta si el método de extensión se utiliza como un método estático o un método de instancia. Para obtener más información, vea Métodos de extensión (Guía de programación de C#).

Espacio de nombres

Cambia el nombre del espacio de nombres al nuevo nombre en la declaración, en todas las instrucciones using y en los nombres completos.

Nota:
Al cambiar el nombre de un espacio de nombres, Visual Studio actualiza también la propiedad Default Namespace en la página Aplicación del Diseñador de proyectos. Esta propiedad no se puede restablecer seleccionando Deshacer en el menú Editar. Para restablecer el valor de la propiedad Default Namespace, debe modificar la propiedad en el Diseñador de proyectos. Para obtener más información, vea Página Aplicación.

Propiedad

Cambia la declaración y los usos de la propiedad por el nuevo nombre.

Tipo

Cambia todas las declaraciones y todos los usos del tipo por el nuevo nombre, incluso los constructores y destructores. Para los tipos parciales, la operación Cambiar nombre se propaga a todas las partes.

Comentarios

Cambiar el nombre de miembros implementados o invalidados

Cuando se realiza la operación Cambiar nombre sobre un miembro que implementa o invalida, o es implementado o invalidado por, miembros de otros tipos, Visual Studio muestra un cuadro de diálogo en el que se indica que la operación de cambio de nombre producirá actualizaciones en cascada. Si hace clic en Continuar, el motor de refactorización busca y cambia de nombre de forma recursiva todos los miembros en tipos base y derivados que mantengan una relación de implementación o sustitución con el miembro al que se va a cambiar de nombre.

El ejemplo de código siguiente contiene miembros con una relación de implementación o sustitución.

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

En el ejemplo anterior, al cambiar el nombre de C.Method() se cambia también el nombre de Ibase.Method(), ya que C.Method() implementa Ibase.Method(). A continuación, el motor de refactorización determina de forma recursiva que Ibase.Method() está implementado por Derived.Method() y cambia el nombre de Derived.Method(). El motor de refactorización no cambia el nombre de Base.Method(), porque Derived.Method() no reemplaza Base.Method(). El motor de refactorización se detiene aquí a menos que haya activado Cambiar el nombre de las sobrecargas en el cuadro de diálogo Cambiar nombre.

Si Cambiar el nombre de las sobrecargas está activado, el motor de refactorización cambia el nombre de Derived.Method(int i) porque sobrecarga Derived.Method(), de Base.Method(int i) porque es reemplazado por Derived.Method(int i) y de Base.Method() porque es una sobrecarga de Base.Method(int i).

Nota:

Al cambiar el nombre de un miembro que se ha definido en un ensamblado al que se hace referencia, aparece un cuadro de diálogo en el que se explica que ese cambio producirá errores de compilación.

Cambiar el nombre a propiedades de tipos anónimos

Al cambiar el nombre a una propiedad en tipos anónimos, la operación de cambio de nombre se propagará a las propiedades de otros tipos anónimos que tengan las mismas propiedades. En el siguiente ejemplo, se muestra este comportamiento:

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

En el código anterior, al cambiar el nombre de ID, se cambiará ID en ambas instrucciones, ya que poseen el mismo tipo anónimo subyacente.

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

En el código anterior, al cambiar el nombre a ID, cambiará sólo el nombre de una instancia de ID, ya que companyIDs y orderIDs no tienen las mismas propiedades.

Vea también

Tareas

Cómo: Cambiar el nombre de los identificadores

Conceptos

Refactorización

Referencia

Tipos anónimos (Guía de programación de C#)

Otros recursos

Control de código fuente en Visual Studio