2008-08-06 12 views

Odpowiedz

237

Zamiast używać ctrl + k, x można też po prostu wpisać prop a następnie naciśnij kartę dwukrotnie

+65

I nie zapomnij "propg" + zakładka, która generuje to samo, ale z prywatnym setera. –

+0

całkowicie fajne. Dzięki! – Stumblor

+0

Zobacz https://msdn.microsoft.com/en-us/library/z41h7fat.aspx więcej przydatnych fragmentów kodu w Visual C# – Titus

1

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

Za pomocą tego kreatora można zdefiniować wszystkie szczegóły wszystkich klas, w tym metody i atrybuty. Jeśli dobrze pamiętam, istniała opcja, dzięki której możesz poprosić VS, aby automatycznie utworzył dla Ciebie ustawiające i pobierające.

Wiem, że to dość ogólnikowe, ale sprawdź to i możesz go znaleźć.

29

Generując, masz na myśli automatyczne generowanie? Jeśli to nie to, co masz na myśli:

Visual Studio 2008 ma najłatwiejszą implementację to:

public PropertyType PropertyName { get; set; } 

W tle Stwarza dorozumianą zmiennej instancji, do którego nieruchomość jest przechowywane i pobierane.

Jednak jeśli chcesz umieścić w więcej logiki we właściwościach, będzie trzeba mieć zmienną instancji do niego:

private PropertyType _property; 

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

Poprzednie wersje Visual Studio zawsze stosować tę metodę, jak również odręcznie.

+0

Czy standard w języku C# nie jest niższym myślnikiem po nazwie elementu 'property_' zamiast przed' _property'? – Julen

+1

@Julen - Zawsze widziałem konwencję _property. –

7

Jeśli korzystasz z programu Visual Studio 2005 i nowszego, możesz szybko utworzyć program ustawiający/pobierający za pomocą komendy wstawiania krótkiego opisu. Kliknij prawym przyciskiem myszy swój kod, kliknij Wstaw fragment (Ctrl + k, x), a następnie wybierz "prop" z listy. Mam nadzieję że to pomoże.

46

Visual Studio posiada również funkcję, która będzie generować obiektu z zmiennej prywatnej.

Po kliknięciu prawym przyciskiem myszy na zmiennej, w wyświetlonym menu kontekstowym kliknij element "Refaktor". Następnie wybierz pole enkapsulacji. Spowoduje to utworzenie właściwości getter/setter dla zmiennej.

Nie jestem zbyt wielkim fanem tej techniki, ponieważ jest ona trochę niezręczna w użyciu, jeśli musisz stworzyć dużo pobierających/ustawiających i umieszcza ją bezpośrednio pod prywatnym polem, co powoduje błędy ponieważ zazwyczaj wszystkie moje prywatne pola są pogrupowane razem, a ta funkcja Visual Studio łamie formatowanie mojej klasy.

+10

Niestety, ta opcja nie jest przyznawana przez ekspresowe edycje Visual Studio. – Toby

+11

jest też shourtcut - ja preferuję w ten sposób :) - CTRL + R + E – Vukasin

+1

"Opcja nie jest przyznawana przez edycje ekspresowe" - Och, człowieku, nie dostarczyli ci kompletnego produktu za darmo? MS, te dranie. –

1

Oprócz fragmentu "prop" i właściwości automatycznych dostępna jest opcja "refactor" umożliwiająca wybranie istniejącego pola i udostępnienie go za pośrednictwem właściwości. Ponadto, jeśli nie podoba ci się implementacja "prop", możesz tworzyć własne fragmenty. Dodatkowo zewnętrzne narzędzie do refaktoryzacji, takie jak resharper, zapewnia jeszcze więcej funkcji i ułatwia tworzenie bardziej zaawansowanych fragmentów kodu. Poleciłbym Resharper, jeśli możesz sobie na to pozwolić.

http://msdn.microsoft.com/en-us/library/f7d3wz0k(VS.80).aspx http://www.jetbrains.com/

4

Jeśli używasz ReSharper, przejdź do menu Resharper -> Code -> Generowanie ... (lub uderzyć Alt + Ins wewnątrz otaczającego klasie) i otrzymasz wszystkie opcje generowania getterów i/lub seterów, które możesz wymyślić :-)

25

możesz także użyć "propfull" i uderzyć dwa razy: TAB, zmienna i właściwość z get i zestaw zostanie wygenerowany.

+0

to jest bardziej przydatna i zawsze o tym zapominam. –

+0

Robię serializację XML i spawnuję masę nieruchomości w całym serialu. + 100 septillionów, jeśli mogę. Dzięki! Edit- EVEN LEPIEJ, autohotkey script +^this = wydajność ponad 90000! – Eon

3

użyj słowa kluczowego propfull.
Generuje właściwość i zmienną

+0

proszę podać więcej informacji o odpowiedzi, odpowiedzi z krótkim opisem nie jest OK dla następnych użytkowników ... – Kiyarash

+0

wpisz słowo kluczowe propfull w edytorze wygeneruje kod taki jak prywatny data_type nazwa_zmiennej; public data_type var_name1 {get; set;} –

2

Wiem, że to jest starsze niż słońce, ale pomyślałem, że mogę to napisać jako moją odpowiedź, ponieważ to tak jak robienie tego w ten sposób.

To, co zrobiłem, to utworzyć własny fragment, który TYLKO dodaje {get; set;}. Zrobiłem to tylko dlatego, że uważam, że prop > tab jest niezgrabny.

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

Z tym, wpisać PropType i propName ręcznie, a następnie wpisz get > tab i doda zestaw dostać. Nie ma w tym nic magicznego, ale skoro w ogóle mam tendencję do wpisywania mojego modyfikatora dostępu, mogę równie dobrze uzupełnić nazwę i typ.

27

Używam Visual Studio 2013 Professional.

  • Umieść kursor na linii zmiennej instancji.

    enter image description here

  • Prasa połączyć klucze Ctrl + R, Ctrl + E lub kliknij prawym przyciskiem myszy, wybrać menu kontekstowego Refactor \ Encapsulate Field... następnie naciśnij OK.

    enter image description here

  • W Preview Reference Changes - Encapsulate Field diaglog, naciśnij przycisk Apply.

    enter image description here

  • To jest wynik:

    enter image description here



też miejsce kursor wyboru właściwość, obsłudze menu Edycja \ Refactor \ hermetyzacji dziedzinie ...

i

private int productID; 

public int ProductID 
{ 
    get { return productID; } 
    set { productID = value; } 
} 

stać się

public int ProductID { get; set; } 
1

w Visual Studio Community Edition 2015 można wybrać wszystko pola, które chcesz, a następnie naciśnij ctrl + ., aby automatycznie wygenerować właściwości. Musisz wybrać, czy chcesz użyć właściwości zamiast pola, czy nie.

0

Wystarczy proste naciśnięcie Alt + Ins w android studio po deklarowania zmiennych, dostaniesz pobierające i ustawiające w generowania kodu.

Powiązane problemy