Pregunta

Utilizo el botón derecho>Refactor>Encapsular campo para tener mi acceso cada vez.El problema es que cuando creo una nueva clase, puedo tener más de 10 atributos y es largo hacerlo 1 por 1 con cada acceso.¿Existe una forma más rápida de crearlos?

Gracias por tu tiempo.

¿Fue útil?

Solución

Si crea una nueva clase, puede usar fragmentos de código para crear campos encapsulados en lugar de crear primero el campo y luego encapsularlo.En C#, los atajos son prop y propg (para conjunto privado).

Otros consejos

Parece que la refactorización integrada en Studio solo admite un único campo a la vez para la refactorización de Encapsulate Field.Refactorizar Pro!(http://www.devexpress.com/Products/Visual_Studio_Add-in/Refactoring/) o Resharper (http://www.jetbrains.com/resharper/index.html) ambos tienen soporte para encapsular múltiples campos.

Es posible que puedas ser sofisticado y crear una macro que te permita seleccionar múltiples campos y luego encapsular cada uno, pero las macros VS no son mi bola de cera.

En C# 3.0, la nueva sintaxis de propiedad le ahorra la necesidad de declarar el campo e implementar los descriptores de acceso.Su sintaxis es la siguiente:

public string Name { get; private set; }

Además, quiero señalar que para los miembros internos, las propiedades triviales tienen muy poco valor sobre los campos internos, ya que usted tiene control tanto sobre la persona que llama como sobre la implementación; puede cambiar a una propiedad en el futuro, sin mucho trabajo.

Incluso para los miembros públicos, pensar que pueden preparar su código para el futuro simplemente creando campos de datos públicos en las propiedades es miope.Como mínimo, debes agregar dirección indirecta alrededor de tu constructor (con una fábrica) y tu interfaz (con una interfaz).También requiere una reflexión profunda sobre cómo los consumidores de su API esperarán que usted trabaje en múltiples versiones.Es realmente difícil y, en mi opinión, solo vale la pena hacerlo si eres un proveedor de API.

En mi código, la razón principal por la que uso propiedades es porque muchas herramientas que usan reflexión miran las propiedades pero no los campos.Creo que esto es un error, pero así es como funcionan las herramientas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top