¿Atajo para crear propiedades en Visual Studio?


259

He visto a algunas personas crear propiedades en C # muy rápido, pero ¿cómo lo hicieron?

¿Qué atajos están disponibles en Visual Studio (actualmente usando Visual Studio 2010) para crear propiedades?

Estoy usando C #.

Por ejemplo,

public string myString {get;set;}

Respuestas:


561

Puede escribir " prop " y luego presionar tab dos veces. Eso generará lo siguiente.

public TYPE Type { get; set; }

Luego cambia "TYPE" y "Type":

public string myString {get; set;}

También puede obtener la propiedad completa escribiendo "propfull" y luego tabular dos veces. Eso generaría el campo y la propiedad completa.

private int myVar;

public int MyProperty
{
    get { return myVar;}
    set { myVar = value;}
}

77
Se olvidó de
llamarlo

@PVitt: Gracias, no sabía el nombre :-)
Amra

12
también, propg creará: public int MyProperty {get; conjunto privado; }
Amc_rtty

3
También puede editar el fragmento de código, en la carpeta VC # \ Snippets \ 1033 \ Visual C # \ "debajo de su instalación de Visual Studio. Edité mi propfull.snippet para hacer el campo de respaldo en protectedlugar de private, por ejemplo.
Paul Smith

9
Si solo escribe P y TAB dos veces, también creará la propiedad int.
Adnan Bhatti

78

Además de la respuesta de Amra , puede encontrar otros fragmentos escribiendo

Ctrl+ K, Ctrl+X

Que está asignado a Edit.InsertSnippet en mi Visual Studio y le muestra la lista completa de fragmentos disponibles.

También recuerde que puede configurar sus propios fragmentos utilizando el Administrador de fragmentos, que está disponible en el Toolsmenú Code Snippets Manager.... Básicamente, crea un archivo *.snippety utiliza el botón Importar en el Administrador de fragmentos de código para agregarlo a Visual Studio. Para un tutorial completo puedes ir a los documentos; Tutorial: cree un fragmento de código .


En Visual Studio, los fragmentos de código se manejan de forma ligeramente diferente que en Visual Studio. Puede acceder a todos los fragmentos escribiendo Ctrl+ Shift+ Py escribiendo snippet. Deben estar disponibles dos opciones, Insert Snippety Preferences: Configure User Snippets.

El primero inserta un fragmento de su lista de fragmentos (usando el Modo de idioma que puede ver en la barra de estado), y con el último puede crear sus propios fragmentos para cualquier Modo de idioma.

Si conoce el nombre corto, puede escribirlo y usarlo Tabpara expandir el fragmento. Para la inserción de una C # propiedad que tiene tres fragmentos disponibles, prop, propfull, y propg, para diferentes propósitos.


Agradable, es más lento, pero obtienes la lista completa de atajos +1.
Amra

1
¡Te quiero!
He

24

Coloque el cursor dentro de su campo private int _i;y luego edite el menú o RMB - Refactor - Encapsular campo ... ( CtrlR, CtrlE) para crear los accesores de propiedad estándar.


1
No todos usan la misma distribución de teclado (sin mencionar ReSharper et al). Podría ser bueno agregar dónde puede encontrar esta misma funcionalidad en los menús.
sliderhouserules

11

Escriba "propfull". Es mucho mejor usarlo, y generará la propiedad y la variable privada.

Escriba "propfull" y luego TABdos veces.


1
¿Por qué las propiedades completas son mejores que las propiedades automáticas? ¿Por qué saturar su código con un campo adicional?
Kyle Delaney el

1
En caso de que necesite hacer algo en setter o getter.
Joe

8

Después de escribir "prop" + Tab+ Tabsegún lo sugerido por Amra, puede escribir inmediatamente el tipo de propiedad (que reemplazará al predeterminado int), escribir otra pestaña y escribir el nombre de la propiedad (que reemplazará el MyProperty predeterminado). Terminar presionando Enter.


6

Creo que Alt+ R+ Fes el correcto para crear propiedades a partir de una declaración de variable


2
+1 ESTO es lo que estaba buscando, ya que crea propiedades para las variables existentes, ¡gracias!
AgentKnopf

1
hm ... está minificando archivos para mí. Esto no funcionó como estaba previsto para mí en VS2012
Ammar

6

Empezar desde:

private int myVar;

Cuando seleccione "myVar" y haga clic con el botón derecho, seleccione "Refactorizar" y seleccione "Encapsular campo".

Creará automáticamente:

{
    get { return myVar; }
    set { myVar = value; }
}

O puede atajarlo presionando Ctrl+ R+ E.


¿Qué versión de Visual Studio? No parece estar en Visual Studio 2008.
Peter Mortensen

Varias opciones de refactorización de código vinieron con VS 2010. Debe estar usando una versión más nueva.
Emrah Esmeroğlu

3

Cuando escribes en Visual Studio,

public ServiceTypesEnum Type { get; set; }
public string TypeString { get { return this.Type.ToString();}}

ReSharper seguirá sugiriendo convertirlo a:

public string TypeString => Type.ToString();

Pero creo que el primero es más legible de lo que sugiere ReSharper
Mahdi Alkhatib

3
¿Cómo responde esto a la pregunta?
Peter Mortensen

3

Lo que me gustó en el IDE fue que pude escribir algunas variables como:

    private int id;
    private string name;
    private string version;
    private string description;
    private string status;
    private string symbol;

Tenga en cuenta que los nombres de las variables comienzan con letras minúsculas, luego seleccione todo el bloque y presione Ctrl+ R, Ctrl+ E, Aplicar. Las propiedades se generan con la letra mayúscula:

    public int Id
    {
        get
        {
            return id;
        }

        set
        {
            id = value;
        }
    }

etc.


Esto realmente no responde la pregunta, ¿verdad?
mrun

Esta era una especie de shorcut que estaba buscando, pero tienes razón. Mi respuesta se centra en cómo preparar las variables para tener propiedades listas sin edición después de aplicar el acceso directo.
Jaro64

Este era un tipo de acceso directo que estaba buscando y terminé en esta página. La pregunta original es cómo crear propiedades en C # realmente rápido. Seguramente, en muchos casos de uso, esto será cuando tenga un campo privado y desee evitar que sea un campo público (este es mi caso). Si tengo mi (s) campo (s) privado (s) escrito (s) y quiero propiedades públicas completas lo antes posible, creo que esto responde a la pregunta perfectamente en este gran subconjunto de casos. Simples
Will Croxford

2

Escriba P+ Tab+Tab .

Cambie el tipo de datos, presione TAB, cambie el nombre de la propiedad y presione End+ Enter.


2

Ir

Herramientas >> Opciones >> Editor de texto >> C # >> IntelliSense

En la sección Comportamiento de fragmentos:

Asegúrese de que esté seleccionado "Incluir siempre fragmentos".

Espero que funcione para ti tambien.




0

Usando VsVim, los fragmentos de código parecen funcionar un poco divertido. El acceso directo que estaba buscando cuando terminé aquí es mucho más simple: después de un tipo de nombre de miembro{g;s;

Tengo activado el cierre automático del delimitador, por lo que aparece la llave de cierre {, y al escribir un punto y coma se activa un autocompletado para obtener y establecer.

Funciona en VS2013 y VS2015, y VS2012 simplemente carece de la combinación automática de llaves.



0

C ª#:

private string studentName;

Al final de la línea después del punto y coma (;) Simplemente presione

Ctrl + R + E

Mostrará una ventana emergente como esta: al ingrese la descripción de la imagen aquí hacer clic en Aplicar o presionar ENTRAR generará el siguiente código de propiedad:

public string StudentName
        {
            get
            {
                return studentName;
            }

            set
            {
                studentName = value;
            }
        }

En VB:

Private _studentName As String

Al final de la línea (después de String) Presione, asegúrese de colocar _ (subrayado) al comienzo porque agregará un número al final de la propiedad:

Ctrl + R + E

Aparecerá la misma ventana: ingrese la descripción de la imagen aquí

Al hacer clic en Aplicar o presionar ENTRAR, generará el siguiente código de propiedad con un número al final como este:

Public Property StudentName As String
        Get
            Return _studentName
        End Get
        Set(value As String)
            _studentName = value
        End Set
    End Property

Con las propiedades numéricas son así:

Private studentName As String
 Public Property StudentName1 As String
        Get
            Return studentName
        End Get
        Set(value As String)
            studentName = value
        End Set
    End Property
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.