Skrót do tworzenia właściwości w Visual Studio?


259

Widziałem niektórych ludzi tworzących właściwości w C # naprawdę szybko, ale jak to zrobili?

Jakie skróty są dostępne w Visual Studio (obecnie używa Visual Studio 2010) do tworzenia właściwości?

Używam C #.

Na przykład,

public string myString {get;set;}

Odpowiedzi:


561

Możesz wpisać „ prop ”, a następnie dwukrotnie nacisnąć klawisz Tab. To wygeneruje następujące.

public TYPE Type { get; set; }

Następnie zmieniasz „TYPE” i „Type”:

public string myString {get; set;}

Możesz także uzyskać pełną właściwość wpisując „propfull”, a następnie dwukrotnie tabulować. To wygeneruje pole i pełną właściwość.

private int myVar;

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

7
Zapomniałeś nazwać go „Code Snippet” :)
PVitt

@PVitt: Dzięki, nie znałem imienia :-)
Amra

12
również propg utworzy: public int MyProperty {get; zestaw prywatny; }
Amc_rtty

3
Możesz także edytować fragment kodu, w folderze VC # \ Snippets \ 1033 \ Visual C # \ "pod instalacją Visual Studio. Zredagowałem mój plik propfull.snippet, aby utworzyć pole podkładu protectedzamiast private, na przykład
Paul Smith,

9
Jeśli wpiszesz tylko P i TAB dwa razy, utworzy to również właściwość int.
Adnan Bhatti

78

Oprócz odpowiedzi Amry możesz znaleźć inne fragmenty, pisząc

Ctrl+ K, Ctrl+X

Który jest mapowany na Edit.InsertSnippet w moim Visual Studio i pokazuje pełną listę dostępnych fragmentów.

Należy również pamiętać, że można skonfigurować własne fragmenty za pomocą fragmentach Manager, który jest dostępny w Toolsmenu Code Snippets Manager.... Zasadniczo tworzysz plik *.snippeti używasz przycisku Importuj w Code Snippets Manager, aby dodać go do Visual Studio. Aby uzyskać pełny samouczek, możesz przejść do dokumentacji;Przewodnik: utwórz fragment kodu .


W Visual Studio Code urywki są obsługiwane nieco inaczej niż w Visual Studio. Aby uzyskać dostęp do wszystkich fragmentów, wpisz Ctrl+ Shift+ Pi wpisz snippet. Powinny być dostępne dwie opcje,Insert Snippet oraz Preferences: Configure User Snippets.

Pierwszy z nich wstawia fragment z listy fragmentów (używając trybu języka, który można zobaczyć na pasku stanu), a drugi pozwala tworzyć własne fragmenty dla dowolnego trybu języka.

Jeśli znasz krótką nazwę, możesz ją po prostu wpisać i Tabrozwinąć fragment kodu. Wstawiania # właściwość C masz trzy fragmenty dostępne prop, propfulli propgdla różnych celów.


Fajnie, że jest wolniejszy, ale dostajesz pełną listę skrótów +1.
Amra,

1
Kocham Cię! szukałem tego od jakiegoś czasu
SageMage

24

Umieść kursor w polu, private int _i;a następnie w menu Edycja lub RMB - Refaktoryzuj - Encapsulate Field ... ( CtrlR, CtrlE), aby utworzyć standardowe akcesoria do właściwości.


1
Nie wszyscy używają tego samego układu klawiatury (nie wspominając o ReSharper i in.). Warto dodać miejsce, w którym można znaleźć tę samą funkcjonalność w menu.
sliderhouserules,

11

Wpisz „propfull”. Jest o wiele lepszy w użyciu i wygeneruje właściwość i zmienną prywatną.

Wpisz „propfull”, a następnie TABdwa razy.


1
Dlaczego pełne właściwości są lepsze niż właściwości automatyczne? Po co zaśmiecać kod dodatkowym polem?
Kyle Delaney,

1
Na wypadek, gdybyś musiał zrobić coś w secie lub getterze.
Joe

8

Po wpisaniu „prop” + Tab+, Tabzgodnie z sugestią Amry, możesz od razu wpisać typ właściwości (która zastąpi domyślną int), wpisz inną kartę i wpisz nazwę właściwości (która zastąpi domyślną MyProperty). Zakończ naciskając Enter.


6

Myślę, że Alt+ R+ Fjest poprawny do tworzenia właściwości z deklaracji zmiennej


2
+1 TO właśnie tego szukałem, ponieważ tworzy on właściwości istniejących zmiennych, dzięki!
AgentKnopf

1
hm .. to dla mnie minimalizuje pliki. To nie zadziałało zgodnie z przeznaczeniem dla VS2012
Ammar

6

Zacznij od:

private int myVar;

Po wybraniu „myVar” i kliknięciu prawym przyciskiem myszy, a następnie wybierz „Refaktoryzuj” i wybierz „Encapsulate Field”.

Automatycznie utworzy:

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

Lub możesz to zrobić, naciskając Ctrl+ R+ E.


Jaka wersja Visual Studio? Nie wydaje się, aby był w Visual Studio 2008.
Peter Mortensen

Różne opcje refaktoryzacji kodu zostały dostarczone wraz z VS 2010. Musisz używać nowszej wersji.
Emrah Esmeroğlu

3

Kiedy piszesz w Visual Studio,

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

ReSharper będzie nadal sugerował konwersję do:

public string TypeString => Type.ToString();

Ale myślę, że pierwszy jest bardziej czytelny niż sugeruje
ReSharper

3
Jak to odpowiada na pytanie?
Peter Mortensen

3

W IDE podobało mi się to, że mogłem napisać kilka zmiennych, takich jak:

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

Zauważ, że nazwy zmiennych zaczynają się od małych liter, a następnie zaznacz cały blok i naciśnij Ctrl+ R, Ctrl+ E, Zastosuj. Właściwości są generowane za pomocą dużej litery:

    public int Id
    {
        get
        {
            return id;
        }

        set
        {
            id = value;
        }
    }

itp.


To tak naprawdę nie odpowiada na pytanie, prawda?
mrun

To był rodzaj skrótu, którego szukałem, ale masz rację. Moja odpowiedź koncentruje się na tym, jak przygotować zmienne, aby przygotować właściwości bez edycji po zastosowaniu skrótu.
Jaro64,

To był rodzaj skrótu, którego szukałem i znalazł się na tej stronie. Pierwotne pytanie brzmi: jak szybko tworzyć właściwości w C #. W wielu przypadkach użycia na podstawie tego z pewnością będzie to miejsce, w którym masz pole prywatne i chcesz uniknąć uczynienia go polem publicznym (tak jest w moim przypadku). Jeśli mam napisane moje prywatne pola (pola) i chcę jak najszybciej usunąć wszystkie nieruchomości publiczne, myślę, że to doskonale odpowiada na pytanie w tej dużej części przypadków. Simples.
Will Croxford,

2

Wpisz P+ Tab+ Tab.

Zmień typ danych, naciśnij TAB, zmień nazwę właściwości i naciśnij End+ Enter.


2

Iść do

Narzędzia >> Opcje >> Edytor tekstu >> C # >> IntelliSense

W sekcji zachowania Snippets:

Upewnij się, że wybrano opcję „Zawsze dołączaj fragmenty”.

Mam nadzieję, że to też dla ciebie zadziała.




0

Przy użyciu VsVim fragmenty kodu wydają się działać trochę śmiesznie. Skrót, którego szukałem, kiedy tu trafiłem, jest znacznie prostszy: po typie nazwy członka{g;s;

Mam włączone automatyczne zamykanie ogranicznika, więc nawias klamrowy pojawia się na { , a wpisanie średnika uruchamia autouzupełnianie dla get i set.

Działa na VS2013 i VS2015, a VS2012 po prostu nie ma automatycznego dopasowania nawiasów klamrowych.



0

W C #:

private string studentName;

Na końcu wiersza po średniku (;) Wystarczy nacisnąć

Ctrl + R + E

Wyświetli się okno wyskakujące w następujący sposób: wprowadź opis zdjęcia tutaj Po kliknięciu przycisku Zastosuj lub naciśnięciu klawisza ENTER wygeneruje następujący kod właściwości:

public string StudentName
        {
            get
            {
                return studentName;
            }

            set
            {
                studentName = value;
            }
        }

W VB:

Private _studentName As String

Na końcu wiersza (po łańcuchu) naciśnij, upewnij się, że umieściłeś _ (podkreślenie) na początku, ponieważ doda on liczbę na końcu właściwości:

Ctrl + R + E

Pojawi się to samo okno: wprowadź opis zdjęcia tutaj

Po kliknięciu przycisku Zastosuj lub naciśnięciu klawisza ENTER wygeneruje następujący kod właściwości z numerem na końcu w następujący sposób:

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

Z właściwościami liczbowymi są takie:

Private studentName As String
 Public Property StudentName1 As String
        Get
            Return studentName
        End Get
        Set(value As String)
            studentName = value
        End Set
    End Property
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.