Jak możemy generować metody pobierające i ustawiające w Visual Studio?

226

Pod pojęciem „generuj” rozumiem automatyczne generowanie kodu niezbędnego dla określonej wybranej (zestawu) zmiennych.

Ale wszelkie bardziej wyraźne objaśnienia lub komentarze dotyczące dobrych praktyk są mile widziane.

Paweł
źródło

Odpowiedzi:

297

Zamiast używać Ctrl+ K, Xmożesz także po prostu wpisać, propa następnie nacisnąć Tabdwukrotnie.

Orion Edwards
źródło
70
I nie zapomnij o zakładce „propg” +, która generuje to samo, ale z prywatnym setera.
Andrew M,
Zobacz msdn.microsoft.com/en-us/library/z41h7fat.aspx, aby uzyskać bardziej przydatne fragmenty kodu w Visual C #
Titus
51

Program Visual Studio ma również funkcję, która wygeneruje właściwość ze zmiennej prywatnej.

Jeśli klikniesz zmienną prawym przyciskiem myszy, w wyskakującym menu kontekstowym kliknij pozycję „Refaktoryzuj”, a następnie wybierz opcję Encapsulate Field ... . Spowoduje to utworzenie właściwości getter / setter dla zmiennej.

Nie jestem wielkim fanem tej techniki, ponieważ jest to trochę niewygodne w użyciu, jeśli musisz utworzyć wiele pobierających / ustawiających, a to umieszcza właściwość bezpośrednio poniżej prywatnego pola, co mnie wkurza, ponieważ zwykle zgrupowałem wszystkie moje prywatne pola, a ta funkcja Visual Studio psuje formatowanie mojej klasy.

Dan Herbert
źródło
10
Niestety ta opcja nie jest dostępna w ekspresowych wersjach programu Visual Studio.
Toby
12
jest też shourtcut - wolę w ten sposób :) - CTRL + R + E
Vukasin
32

Używam Visual Studio 2013 Professional.

  • Umieść kursor na linii zmiennej instancji.

    Wpisz opis zdjęcia tutaj

  • Naciśnij kombinację klawiszy Ctrl+ R, Ctrl+ Elub kliknij prawy przycisk myszy. Wybierz menu kontekstowe RefaktoryzujObuduj pole ... , a następnie naciśnij OK.

    Wpisz opis zdjęcia tutaj

  • W oknie dialogowym Podgląd zmian zmian - Encapsulate Field naciśnij przycisk Apply.

    Wpisz opis zdjęcia tutaj

  • To wynik:

    Wpisz opis zdjęcia tutaj



Możesz także umieścić kursor, aby wybrać właściwość . Użyj menu EdytujRefaktoryzujObuduj pole ...

Do Nhu Vy
źródło
30

Przez generowanie masz na myśli generowanie automatyczne? Jeśli nie to masz na myśli:

Visual Studio 2008 ma najłatwiejszą implementację do tego:

public PropertyType PropertyName { get; set; }

W tle tworzy to domyślną zmienną instancji, w której twoja właściwość jest przechowywana i pobierana.

Jeśli jednak chcesz wprowadzić więcej logiki do swoich właściwości, będziesz musiał mieć dla niej zmienną instancji:

private PropertyType _property;

public PropertyType PropertyName
{
    get
    {
        //logic here 
        return _property;
    }
    set
    {
        //logic here
        _property = value;
    }
 }

Poprzednie wersje programu Visual Studio zawsze używały tej długiej metody.

Jon Limjap
źródło
Czy standardem w C # nie jest dolna myślnik po nazwie członka property_zamiast przed nim _property?
Julen
2
@Julen - Zawsze widziałem konwencję _property.
Nathan DeWitt
27

Możesz także użyć „propfull” i nacisnąć TABdwa razy.

Zmienna i właściwość z get i set zostaną wygenerowane.

Chirag Khatsuriya
źródło
jest to bardziej przydatne i zawsze o tym zapominam
Dave Alperovich,
Robię serializację XML i odradzam mnóstwo właściwości w całym programie. + 100 septillionów głosów, gdybym mógł. Dzięki! Edycja- JESZCZE LEPSZE, skrypt auto-klucza + ^ this = wydajność ponad 90000!
Eon
Film pokazujący użycie fragmentu „propfull” (między innymi), przy 4 min 11 sek.
Peter Mortensen,
6

Jeśli używasz programu Visual Studio 2005 i nowszych wersji, możesz szybko utworzyć narzędzie ustawiające / pobierające za pomocą polecenia insert snippet.

Kliknij kod prawym przyciskiem myszy, kliknij polecenie Wstaw fragment ( Ctrl+ K, X), a następnie wybierz z listy „prop”.

omar
źródło
4

Jeśli używasz ReSharper, przejdź do menu ReSharper → KodGeneruj ...

(Lub naciśnij Alt+ Inswewnątrz otaczającej klasy), a otrzymasz wszystkie opcje generowania pobieraczy i / lub ustawiaczy, o których możesz pomyśleć :-)

Oliver
źródło
3

Użyj propfullsłowa kluczowego.

Wygeneruje właściwość i zmienną.

Wpisz słowo kluczowe propfullw edytorze, a następnie dwa TABs. Wygeneruje kod taki jak:

private data_type var_name;

public data_type var_name1{ get;set;}

Film pokazujący użycie fragmentu „propfull” (między innymi), przy 4 min 11 sek.

avinash kadu
źródło
2
proszę podać więcej informacji o swojej odpowiedzi, odpowiedzi z krótkim opisem nie są odpowiednie dla następnych odwiedzających ...
Kiyarash
wpisz słowo kluczowe propfull w edytorze, wygeneruje kod taki jak prywatny typ danych nazwa_zmiennej; public data_type var_name1 {get; set;}
avinash kadu
Czy możesz dodać odniesienie do „propfull” ( edytując odpowiedź , a nie tutaj w komentarzach)?
Peter Mortensen,
3

Stworzyłem własny fragment, który tylko dodaje {get; set;}. Zrobiłem to tylko dlatego, że uważam propTabza niezdarnego.

<?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>
</CodeSnippets>

Dzięki temu wpisujesz swój PropType i PropName ręcznie, a następnie wpisz getTab, a to doda zestaw get. To nic magicznego, ale skoro i tak mam tendencję do pisania modyfikatora dostępu, równie dobrze mogę dokończyć nazwę i typ.

bsayegh
źródło
2

W Visual Studio Community Edition 2015 możesz wybrać wszystkie potrzebne pola, a następnie nacisnąć Ctrl+, .aby automatycznie wygenerować właściwości.

Musisz wybrać, czy chcesz użyć właściwości zamiast pola, czy nie.

Tito Leiva
źródło
1

Oprócz fragmentu „prop” i auto-właściwości, dostępna jest także opcja refaktora, która pozwala wybrać istniejące pole i ujawnić je za pomocą właściwości ( kliknij prawym przyciskiem myszy pole → RefaktoryzujObuduj pole ... ).

Ponadto, jeśli nie podoba Ci się implementacja „prop”, możesz utworzyć własne fragmenty. Ponadto narzędzie refaktoryzujące innej firmy, takie jak ReSharper, zapewni jeszcze więcej funkcji i ułatwi tworzenie bardziej zaawansowanych fragmentów. Polecam ReSharper, jeśli możesz sobie na to pozwolić.

Daniel
źródło
Pierwsze łącze przekierowuje do dokumentacji programu Visual Studio 2005 Retired . Który z dziesięciu dotyczył? Przypuszczalnie jest to opis sposobu używania fragmentów w Visual Studio.
Peter Mortensen,
1

W Visual Studio 2019 wybierz swoje właściwości w ten sposób:

wprowadź opis zdjęcia tutaj

Następnie naciśnij Ctrl+r Następnie naciśnijCtrl+e

Pojawi się okno dialogowe pokazujące podgląd zmian, które zostaną wprowadzone w kodzie. Jeśli wszystko wygląda dobrze (co w większości będzie), naciśnij OK.

Adil Malik
źródło
0

Nie mam już zainstalowanego programu Visual Studio na moim komputerze (i używam Linuksa), ale pamiętam, że w jednym z menu, które dało dostęp do kreatora klas, ukryty był kreator.

Za pomocą tego kreatora możesz zdefiniować wszystkie szczegóły swoich klas, w tym metody i atrybuty. O ile dobrze pamiętam, istniała opcja, za pomocą której możesz poprosić Visual Studio o automatyczne utworzenie setterów i getterów.

Wiem, że to dość niejasne, ale sprawdź to, a może się uda.

Mario Marinato
źródło
0

Wpisz opis zdjęcia tutaj

W imieniu narzędzia Visual Studio możemy łatwo generować właściwości C # za pomocą narzędzia online o nazwie Generator właściwości C #.

DotNetLover
źródło
3
bezużyteczna funkcja
SeReGa,
0

Najpierw pobierz rozszerzenie, po prostu naciśnij ( Ctrl+ Shift+ X) i zainstaluj program ustawiający ...

Następnie wybierz zmienną i kliknij prawym przyciskiem myszy. Przejdź do palety poleceń ...

I wpisz getter ... Sugeruje wygenerowanie metod get i set. Kliknij na to ...

sejpalsinh jadeja
źródło
1
Co rozumiesz przez „First Get Extension” ?
Peter Mortensen,
W jakim kontekście należy nacisnąć Ctrl + Shift + X?
Peter Mortensen,
-4

Wystarczy nacisnąć Alt+ Insw Android Studio.

Po zadeklarowaniu zmiennych otrzymasz gettery i settery w wygenerowanym kodzie.

A_R Rehman
źródło
Nikt nie pytał o studio Android
warzone_fz
Pytanie brzmi: „Jak możemy generować programy pobierające i ustawiające w programie Visual Studio?” . Visual Studio to nie to samo co Android Studio .
Peter Mortensen,