c# - setters - ¿Cómo generar captadores y establecedores en Visual Studio?
getters y setters c# (15)
Por "generar", me refiero a la autogeneración del código necesario para una (s) variable (s) seleccionada (s) particular (es).
Pero cualquier explicación más explícita o comentario sobre buenas prácticas es bienvenida.
Además del fragmento ''prop'' y las propiedades automáticas, hay una opción de refactorización que le permite seleccionar un campo existente y exponerlo a través de una propiedad. Además, si no le gusta la implementación ''prop'', puede crear sus propios fragmentos. Además, una herramienta de refactorización de terceros como resharper le brindará aún más funciones y facilitará la creación de fragmentos más avanzados. Recomiendo Resharper si te lo puedes permitir.
http://msdn.microsoft.com/en-us/library/f7d3wz0k(VS.80).aspx http://www.jetbrains.com/
En Visual Studio Community Edition 2015, puede seleccionar todos los campos que desee y luego presionar ctrl + .
para generar automáticamente las propiedades. Debe elegir si desea utilizar la propiedad en lugar del campo o no.
Por generar, ¿te refieres a autogenerar? Si eso no es lo que quieres decir:
Visual Studio 2008 tiene la implementación más fácil para esto:
public PropertyType PropertyName { get; set; }
En segundo plano, esto crea una variable de instancia implícita en la que se almacena y recupera su propiedad.
Sin embargo, si desea poner más lógica en sus Propiedades, tendrá que tener una variable de instancia para ello:
private PropertyType _property;
public PropertyType PropertyName
{
get
{
//logic here
return _property;
}
set
{
//logic here
_property = value;
}
}
Las versiones anteriores de Visual Studio siempre usaban este método de mano larga también.
Primero obtenga la Extensión, simplemente presione (ctrl + shift + X) e instale getter setter ... Después de esto, simplemente seleccione su variable y haga clic derecho en Ir a la paleta de comandos ... Y escriba getter ... Sugiere generar métodos get y set haga clic en esto ...
Sé que esto es más antiguo que el sol, pero pensé que publicaría esto como mi respuesta porque es como hacerlo de esta manera.
Lo que hice fue crear mi propio fragmento que SOLO agrega {get; set;}
{get; set;}
. Lo hice solo porque encuentro que prop > tab
es torpe.
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets
xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>get set</Title>
<Shortcut>get</Shortcut>
</Header>
<Snippet>
<Code Language="CSharp">
<![CDATA[{get; set;}]]>
</Code>
</Snippet>
</CodeSnippet>
Con esto, escriba su PropType y PropName manualmente, luego escriba get > tab
y agregará el conjunto de ajustes. No es nada mágico, pero como tiendo a escribir mi modificador de acceso de todos modos, también podría terminar el nombre y el tipo.
Si está utilizando ReSharper, vaya al menú ReSharper -> Código -> Generar ... (o presione Alt + Ins dentro de la clase circundante) y obtendrá todas las opciones para generar captadores y / o establecedores que puede pensar en :-)
Si está utilizando Visual Studio 2005 y versiones posteriores, puede crear un setter / getter muy rápido usando el comando insert snippet. Haga clic derecho en su código, haga clic en Insertar fragmento ( Ctrl + k , x ) y luego elija "prop" de la lista. Espero que esto ayude.
Simplemente presione Alt + Ins en el estudio de Android después de declarar variables, obtendrá los captadores y establecedores en la generación de código.
Visual Studio también tiene una característica que generará una Propiedad a partir de una variable privada.
Si hace clic con el botón derecho en una variable, en el menú contextual que aparece, haga clic en el elemento "Refactorizar". Luego elija encapsular campo. Esto creará una propiedad getter / setter para una variable.
No soy un gran admirador de esta técnica, ya que es un poco incómodo de usar si tienes que crear muchos captadores / establecedores, y pone la propiedad directamente debajo del campo privado, lo que me molesta porque generalmente tengo todos mis campos privados agrupados, y esta característica de Visual Studio rompe el formato de mi clase.
Ya no tengo instalado Visual Studio en mi máquina (y estoy usando Linux), pero sí recuerdo que había un asistente oculto en algún lugar dentro de uno de los menús que daba acceso a un generador de clases.
Con este asistente, puede definir todos los detalles de sus clases, incluidos los métodos y atributos. Si recuerdo bien, había una opción a través de la cual se podía pedirle a VS que creara los setters y getters automáticamente para usted.
Sé que es bastante vago, pero échale un vistazo y es posible que lo encuentres.
Yo uso Visual Studio 2013 Professional.
- Coloque el cursor en la línea de una variable de instancia.
- Presione las teclas combinadas Ctrl + R , Ctrl + E o haga clic con el botón derecho del mouse, elija el menú contextual
Refactor / Encapsulate Field...
luego presioneOK
. - En
Preview Reference Changes - Encapsulate Field
, presione el botónApply
- Este es el resultado:
También coloca el cursor para elegir la propiedad , use Menú Editar / Refactorizar / Encapsular campo ...
- Otra información: desde C # 3.0 (19 de noviembre de 2007), podemos usar propiedades de implementación automática (esto es simplemente azúcar sintáctico )
y
private int productID;
public int ProductID
{
get { return productID; }
set { productID = value; }
}
convertirse en
public int ProductID { get; set; }
también puede usar "propfull" y presionar TAB dos veces, se generarán variables y propiedades con get y set.
use la palabra clave propfull
.
Generará propiedades y variables.
En nombre de la herramienta Visual Studio, podemos generar fácilmente propiedades de C # usando la herramienta en línea llamada. c # generador de propiedad.
En lugar de usar ctrl + k , x , también puede escribir prop
y luego presionar tab dos veces