¿Cómo generar captadores y definidores en Visual Studio?
-
08-06-2019 - |
Pregunta
Por "generar", me refiero a la generación automática del código necesario para una variable (conjunto de) seleccionada en particular.
Pero cualquier explicación o comentario más explícito sobre buenas prácticas es bienvenido.
Solución
En lugar de usar control+k,X también puedes simplemente escribir prop
y luego presione la pestaña dos veces
Otros consejos
Visual Studio también tiene una característica que generará una propiedad a partir de una variable privada.
Si hace clic 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/definidores, y coloca la propiedad directamente debajo del campo privado, lo que me molesta porque normalmente tengo Todos mis campos privados están agrupados y esta característica de Visual Studio rompe el formato de mi clase.
Por generar, ¿te refieres a generar automáticamente?Si eso no es lo que quieres decir:
Visual Studio 2008 tiene la implementación más sencilla 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 agregar más lógica a sus Propiedades, deberá 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 también utilizaban siempre este método manual.
Yo uso Visual Studio 2013 Profesional.
- Coloque el cursor en la línea de una variable de instancia.
- Presione combinar teclas Control+R, Control+mi o Haga clic con el botón derecho del mouse, elija el menú contextual
Refactor \ Encapsulate Field...
entonces presioneOK
.
- En
Preview Reference Changes - Encapsulate Field
diálogo, presione el botónApply
.
- Este es el resultado:
También coloque 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 implementadas automáticamente (Esto es simplemente azúcar sintáctica)
y
private int productID;
public int ProductID
{
get { return productID; }
set { productID = value; }
}
convertirse en
public int ProductID { get; set; }
también puedes usar "propfull" y presionar PESTAÑA dos veces, se generarán la variable y la propiedad con get y set.
Si está utilizando Visual Studio 2005 y versiones posteriores, puede crear un definidor/obtenedor muy rápido usando el comando insertar fragmento.Haga clic derecho en su código, haga clic en Insertar fragmento (Control+k,X) y luego elija "prop" de la lista.Espero que esto ayude.
Si está utilizando ReSharper, vaya al menú ReSharper --> Código --> Generar...(o golpear Alt.+En s dentro de la clase circundante) y obtendrás todas las opciones para generar captadores y/o definidores que puedas imaginar :-)
utilizar el propfull
palabra clave.
Generará propiedad y variable.
Sé que esto es más antiguo que el sol, pero pensé en publicar esto como mi respuesta porque es como hacerlo de esta manera.
Lo que hice fue crear mi propio fragmento que SOLO agrega {get; set;}
.Lo hice sólo porque encontré prop > tab
ser 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, escribe su PropType y PropName manualmente, luego escribe get > tab
y agregará el get set.No es nada mágico, pero como de todos modos tiendo a escribir primero mi modificador de acceso, también puedo terminar el nombre y escribirlo.
En Visual Studio Community Edition 2015 puedes seleccionar todos los campos que quieras y luego presionar ctrl + .
para generar automáticamente las propiedades.Tienes que elegir si quieres utilizar la propiedad en lugar del campo o no.
Además del fragmento 'prop' y las propiedades automáticas, existe 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 te gusta la implementación de 'prop', puedes crear tus 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.Recomendaría Resharper si te lo puedes permitir.
http://msdn.microsoft.com/en-us/library/f7d3wz0k(VS.80).aspx http://www.jetbrains.com/
Ya no tengo Visual Studio instalado en mi máquina (y estoy usando Linux), pero sí recuerdo que había un asistente escondido 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 métodos y atributos.Si no recuerdo mal, había una opción a través de la cual podías pedirle a VS que creara los definidores y captadores automáticamente.
Sé que es bastante vago, pero compruébalo y quizás lo encuentres.
Primero Get Extension Simplemente presione (Ctrl+Shift+X) e instale Getter Setter ....Después de esto, simplemente seleccione su variable y haga clic derecho, vaya a la paleta de comandos ...Y escribe getter...Sugerirá generar métodos get y set, haga clic en esto...
en nombre de la herramienta Visual Studio podemos generar fácilmente las propiedades de C# utilizando la herramienta en línea llamada. generador de propiedades c#.
Simplemente presiona Alt.+En s En Android Studio, después de declarar las variables, obtendrá los captadores y definidores al generar el código.