Scorciatoia per creare proprietà in Visual Studio?


259

Ho visto alcune persone creare proprietà in C # molto velocemente, ma come hanno fatto?

Quali collegamenti sono disponibili in Visual Studio (che attualmente utilizza Visual Studio 2010) per creare proprietà?

Sto usando C #.

Per esempio,

public string myString {get;set;}

Risposte:


561

È possibile digitare " prop " e quindi premere due volte tab. Ciò genererà quanto segue.

public TYPE Type { get; set; }

Quindi si modifica "TIPO" e "Tipo":

public string myString {get; set;}

È inoltre possibile ottenere la proprietà completa digitando "propfull" e quindi scheda due volte. Ciò genererebbe il campo e la proprietà completa.

private int myVar;

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

7
Hai dimenticato di
chiamarlo

@PVitt: Grazie non conoscevo il nome :-)
Amra,

12
inoltre, propg creerà: public int MyProperty {get; set privato; }
Amc_rtty,

3
Puoi anche modificare lo snippet di codice, nella cartella VC # \ Snippets \ 1033 \ Visual C # \ "sotto la tua installazione di Visual Studio. Ho modificato il mio propfull.snippet per creare il campo di supporto protectedanziché private, ad esempio.
Paul Smith,

9
Se digiti P e TAB due volte, creerà anche la proprietà int.
Adnan Bhatti,

78

Oltre alla risposta di Amra , puoi trovare altri snippet digitando

Ctrl+ K, Ctrl+X

Che è mappato su Edit.InsertSnippet nel mio Visual Studio e mostra l'elenco completo dei frammenti disponibili.

Ricorda inoltre che è possibile configurare i propri snippet utilizzando lo Snippets Manager, che è disponibile nel Toolsmenù, Code Snippets Manager.... Fondamentalmente si crea un file *.snippete si utilizza il pulsante Importa in Gestione frammenti di codice per aggiungerlo a Visual Studio. Per un tutorial completo puoi andare alla documentazione; Scenario: creare uno snippet di codice .


In Visual Studio i frammenti di codice sono gestiti in modo leggermente diverso rispetto a Visual Studio. Puoi accedere a tutti gli snippet digitando Ctrl+ Shift+ Pe digitando snippet. Dovrebbero essere disponibili due opzioni Insert Snippete Preferences: Configure User Snippets.

Il primo inserisce uno snippet dal tuo elenco di snippet (utilizzando la modalità lingua che puoi vedere nella barra di stato) e con il secondo puoi creare i tuoi snippet per qualsiasi modalità lingua.

Se conosci il nome breve, puoi semplicemente digitarlo e utilizzare Tabper espandere lo snippet. Per l'inserimento di un immobile # C si hanno tre frammenti disponibili, prop, propfull, e propg, per scopi diversi.


Bello è più lento ma ottieni l'elenco completo di scorciatoie +1.
Amra,

1
Ti amo! lo cerco da un po 'di tempo ormai
SageMage il

24

Posiziona il cursore all'interno del tuo campo, private int _i;quindi modifica menu o RMB - Refactor - Encapsulate Field ... ( CtrlR, CtrlE) per creare gli accessi alle proprietà standard.


1
Non tutti usano lo stesso layout di tastiera (per non parlare di ReSharper et al). Potrebbe essere utile aggiungere dove puoi trovare questa stessa funzionalità nei menu.
sliderhouserules,

11

Digita "propfull". È molto meglio da usare e genererà la proprietà e la variabile privata.

Digita "propfull" e poi TABdue volte.


1
Perché le proprietà complete sono migliori delle proprietà automatiche? Perché ingombrare il tuo codice con un campo aggiuntivo?
Kyle Delaney,

1
Nel caso in cui devi fare qualcosa in setter o getter.
joe

8

Dopo aver digitato "prop" + Tab+ Tabcome suggerito da Amra, puoi immediatamente digitare il tipo di proprietà (che sostituirà il valore predefinito int), digitare un'altra scheda e digitare il nome della proprietà (che sostituirà MyProperty predefinito). Termina premendo Enter.


6

Penso che Alt+ R+ Fsia quello corretto per la creazione di proprietà da una dichiarazione variabile


2
+1 QUESTO è in realtà quello che stavo cercando, dal momento che crea proprietà per variabili esistenti, grazie!
AgentKnopf,

1
hm .. sta minimizzando i file per me. Questo non ha funzionato come previsto per me su VS2012
Ammar,

6

Inizia da:

private int myVar;

Quando si seleziona "myVar" e si fa clic con il tasto destro, selezionare "Refactor" e selezionare "Encapsulate Field".

Creerà automaticamente:

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

Oppure puoi scorciatoia premendo Ctrl+ R+ E.


Quale versione di Visual Studio? Non sembra essere in Visual Studio 2008.
Peter Mortensen,

Diverse opzioni di refactoring del codice sono state fornite con VS 2010. È necessario utilizzare la versione più recente.
Emrah Esmeroğlu,

3

Quando scrivi in ​​Visual Studio,

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

ReSharper continuerà a suggerire di convertirlo in:

public string TypeString => Type.ToString();

Ma penso che il primo sia più leggibile di quanto suggerisce ReSharper
Mahdi Alkhatib,

3
Come risponde alla domanda?
Peter Mortensen,

3

Quello che mi è piaciuto nell'IDE è stato che sono stato in grado di scrivere alcune variabili come:

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

Si noti che i nomi delle variabili iniziano con lettere minuscole, quindi selezionare l'intero blocco e premere Ctrl+ R, Ctrl+ E, Applica. Le proprietà sono generate con la lettera maiuscola:

    public int Id
    {
        get
        {
            return id;
        }

        set
        {
            id = value;
        }
    }

eccetera.


Questo non risponde davvero alla domanda, vero?
sig.

Era una specie di shorcut che stavo cercando, ma hai ragione. La mia risposta si concentra su come preparare le variabili per avere le proprietà pronte senza modifica dopo aver applicato il collegamento.
Jaro64,

Questa era una specie di scorciatoia che stavo cercando, ed è finita in questa pagina. La domanda originale è come creare proprietà in C # molto velocemente. In molti casi d'uso sotto questo sicuramente, questo sarà dove hai un campo privato e vuoi evitare di renderlo un campo pubblico (questo è il mio caso). Se ho i miei campi privati ​​scritti e voglio le proprietà pubbliche complete al più presto penso che questa sia la risposta perfetta alla domanda in questo ampio sottogruppo di casi. Semplici.
Will Croxford,

2

Digita P+ Tab+ Tab.

Modificare il tipo di dati, premere TAB, cambiare il nome della proprietà e premere End+ Enter.


2

Vai a

Strumenti >> Opzioni >> Editor di testo >> C # >> IntelliSense

Nella sezione Comportamento snippet:

Assicurati che "Includi sempre frammenti" sia selezionato.

Spero che funzioni anche per te.




0

Usando VsVim gli snippet di codice sembrano funzionare in modo un po 'divertente. Il collegamento che stavo cercando quando sono finito qui è molto più semplice: dopo un tipo di nome membro{g;s;

Ho la chiusura automatica del delimitatore attivata, quindi appare il controvento di chiusura {e digitando un punto e virgola si avvia un completamento automatico per get e set.

Funziona su VS2013 e VS2015 e VS2012 manca solo della corrispondenza automatica del controvento.


0

Nella comunità di Visual Studio 2017, il tasto è ctrl +.


0

In C #:

private string studentName;

Alla fine della riga dopo il punto e virgola (;) Basta premere

Ctrl + R + E

Mostrerà una finestra pop-up come questa: facendo inserisci qui la descrizione dell'immagine clic su Applica o premendo INVIO genererà il seguente codice di proprietà:

public string StudentName
        {
            get
            {
                return studentName;
            }

            set
            {
                studentName = value;
            }
        }

In VB:

Private _studentName As String

Alla fine della riga (dopo String), premi, assicurati di inserire _ (trattino basso) all'inizio perché aggiungerà il numero alla fine della proprietà:

Ctrl + R + E

Apparirà la stessa finestra: inserisci qui la descrizione dell'immagine

Facendo clic su Applica o premendo INVIO genererà il seguente codice di proprietà con il numero alla fine in questo modo:

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

Con le proprietà numeriche sono così:

Private studentName As String
 Public Property StudentName1 As String
        Get
            Return studentName
        End Get
        Set(value As String)
            studentName = value
        End Set
    End Property
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.