Compartir a través de


Encapsular campo

Actualización: noviembre 2007

La operación de refactorización Encapsular campo permite crear rápidamente una propiedad a partir de un campo existente y, a continuación, actualizar el código de forma transparente con referencias a la nueva propiedad.

Cuando un campo es público, los otros objetos tendrán acceso directo a ese campo y podrán modificarlo, sin que el objeto que posee el campo lo detecte. Mediante propiedades que encapsulen los campos, puede deshabilitar el acceso directo a ellos.

Para crear la nueva propiedad, la operación Encapsular campo cambia el modificador de acceso del campo que desea encapsular a private y, a continuación, genera descriptores de acceso get y set para ese campo. En algunos casos, sólo se genera un descriptor de acceso get, por ejemplo cuando el campo se declara de sólo lectura.

El motor de refactorización actualiza el código con referencias a la nueva propiedad en las áreas especificadas en la sección Actualizar referencias del Encapsular campo (Cuadro de diálogo).

Comentarios

La operación Encapsular campo sólo es posible cuando el cursor se encuentra en la misma línea que la declaración de campo.

Para las declaraciones de varios campos, Encapsular campo usa la coma como límite de separación entre los campos e inicia la refactorización en el campo que está más cerca del cursor, en la misma línea que el cursor. También puede especificar qué campo desea encapsular seleccionando el nombre de dicho campo en la declaración.

El código generado por esta operación de refactorización se modela mediante la característica de fragmentos de código de Encapsular campo. Los fragmentos de código se pueden modificar. Para obtener más información, vea Cómo: Administrar fragmentos de código.

Para obtener más información sobre cuándo utilizar los campos y cuándo utilizar las propiedades, vea Comparación de procedimientos de propiedades y campos.

Vea también

Tareas

Cómo: Refactorizar código con Encapsular campo

Conceptos

Refactorización

Fragmentos de código (C#)