Wie können wir in Visual Studio Getter und Setter generieren?


226

Mit "generieren" meine ich die automatische Generierung des Codes, der für eine bestimmte ausgewählte (Gruppe von) Variable (n) erforderlich ist.

Eine explizitere Erläuterung oder Kommentierung bewährter Verfahren ist jedoch willkommen.

Antworten:


297

Anstatt Ctrl+ zu verwenden K, können XSie auch einfach tippen propund dann Tabzweimal drücken.


70
Und vergessen Sie nicht "propg" + tab, der das gleiche generiert, aber mit einem privaten Setter.
Andrew M

Weitere nützliche Codefragmente in Visual C #
Titus vom

51

Visual Studio verfügt auch über eine Funktion, mit der eine Eigenschaft aus einer privaten Variablen generiert wird.

Wenn Sie mit der rechten Maustaste auf eine Variable klicken , klicken Sie im angezeigten Kontextmenü auf das Element "Refactor" und wählen Sie Feld ... . Dadurch wird eine Getter / Setter-Eigenschaft für eine Variable erstellt.

Ich bin kein allzu großer Fan dieser Technik, da es etwas umständlich ist, sie zu verwenden, wenn Sie viele Getter / Setter erstellen müssen, und die Eigenschaft direkt unter dem privaten Feld platziert wird, was mich nervt, weil ich es normalerweise tue Alle meine privaten Felder sind zusammengefasst, und diese Visual Studio-Funktion unterbricht die Formatierung meiner Klasse.


10
Leider wird diese Option von den Express-Editionen von Visual Studio nicht angeboten.
Toby

12
Es gibt auch Shourtcut - ich bevorzuge diesen Weg :) - STRG + R + E
Vukasin

32

Ich verwende Visual Studio 2013 Professional.

  • Platzieren Sie Ihren Cursor in der Zeile einer Instanzvariablen.

    Geben Sie hier die Bildbeschreibung ein

  • Drücken Sie die Kombinationstasten Ctrl+ R, Ctrl+ Eoder klicken Sie mit der rechten Maustaste. Wählen Sie das Kontextmenü RefactorEncapsulate Field ... und drücken Sie dann OK.

    Geben Sie hier die Bildbeschreibung ein

  • In Vorschau Referenz Changes - Encapsulate Feld Dialog, drücken Sie die Taste Apply.

    Geben Sie hier die Bildbeschreibung ein

  • Dies ist das Ergebnis:

    Geben Sie hier die Bildbeschreibung ein



Sie platzieren auch den Cursor für die Auswahl einer Eigenschaft . Verwenden Sie das Menü BearbeitenRefaktorFeld einkapseln ...


30

Meinen Sie mit generieren automatisch generieren? Wenn du das nicht meinst:

Visual Studio 2008 bietet hierfür die einfachste Implementierung:

public PropertyType PropertyName { get; set; }

Im Hintergrund wird dadurch eine implizite Instanzvariable erstellt, in der Ihre Eigenschaft gespeichert und abgerufen wird.

Wenn Sie jedoch mehr Logik in Ihre Eigenschaften einfügen möchten, müssen Sie eine Instanzvariable dafür haben:

private PropertyType _property;

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

Frühere Versionen von Visual Studio verwendeten immer auch diese Langhandmethode.


Ist nicht der Standard in C # der untere Bindestrich nach dem Mitgliedsnamen property_statt vorher _property?
Julen

2
@ Julen - Ich habe immer die _property Konvention gesehen.
Nathan DeWitt

27

Sie können auch "propfull" verwenden und drücken TAB zweimal .

Die Variable und Eigenschaft mit get und set werden generiert.


Dies ist die nützlichere und ich vergesse es immer
Dave Alperovich

Ich mache XML-Serialisierung und spawne eine Menge Eigenschaften in der ganzen Show. + 100septillion Upvotes, wenn ich könnte. Danke! Bearbeiten - NOCH BESSER, Autohotkey-Skript + ^ this = Produktivität über 90000!
Eon


6

Wenn Sie Visual Studio 2005 oder höher verwenden, können Sie mit dem Befehl insert snippet sehr schnell einen Setter / Getter erstellen.

Klicken Sie mit der rechten Maustaste auf Ihren Code, klicken Sie auf Snippet einfügen ( Ctrl+ K, X) und wählen Sie dann "Requisite" aus der Liste.


4

Wenn Sie ReSharper verwenden, gehen Sie in das ReSharper-Menü → CodeGenerieren ...

(Oder drücke Alt+ Insin der umgebenden Klasse) und du bekommst alle Optionen zum Generieren von Gettern und / oder Setzern, die du dir vorstellen kannst :-)


3

Verwenden Sie das propfullSchlüsselwort.

Es werden eine Eigenschaft und eine Variable generiert.

Geben Sie das Schlüsselwort propfullin den Editor ein, gefolgt von zwei TABs. Es wird Code generiert wie:

private data_type var_name;

public data_type var_name1{ get;set;}

Video, das die Verwendung des Snippets 'propfull' (unter anderem) in 4 Minuten und 11 Sekunden demonstriert .


2
Bitte geben Sie weitere Informationen zu Ihrer Antwort an. Antworten mit kurzer Beschreibung sind für die nächsten Besucher nicht in Ordnung.
Kiyarash

Geben Sie das Schlüsselwort propfull in den Editor ein. Es wird Code wie der private Datentyp var_name generiert. public data_type var_name1 {get; set;}
avinash kadu

Können Sie eine Referenz für "propfull" hinzufügen (indem Sie Ihre Antwort bearbeiten , nicht hier in den Kommentaren)?
Peter Mortensen

3

Ich habe mein eigenes Snippet erstellt, das nur hinzugefügt wird {get; set;}. Ich habe es nur gemacht, weil ich propTabklobig finde .

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

Hiermit geben Sie Ihren PropType und PropName manuell ein, geben dann get→ ein Tabund es wird das get set hinzugefügt. Es ist nichts Magisches, aber da ich sowieso dazu neige, meinen Zugriffsmodifikator zuerst einzugeben, kann ich auch den Namen und den Typ vervollständigen.


2

In Visual Studio Community Edition 2015 können Sie alle gewünschten Felder auswählen und dann Ctrl+ drücken. , um die Eigenschaften automatisch zu generieren.

Sie müssen auswählen, ob Sie die Eigenschaft anstelle des Felds verwenden möchten oder nicht.


1

Zusätzlich zum 'Prop'-Snippet und den Auto-Eigenschaften gibt es eine Refactor-Option, mit der Sie ein vorhandenes Feld auswählen und über eine Eigenschaft verfügbar machen können ( Rechtsklick auf das Feld → RefactorEncapsulate Field ...). ).

Wenn Ihnen die Implementierung von 'prop' nicht gefällt, können Sie auch Ihre eigenen Snippets erstellen. Darüber hinaus bietet Ihnen ein Refactoring-Tool eines Drittanbieters wie ReSharper noch mehr Funktionen und erleichtert das Erstellen erweiterter Snippets. Ich würde ReSharper empfehlen, wenn Sie es sich leisten können.


Der erste Link leitet zur Dokumentation zu Visual Studio 2005 Retired weiter . Auf welche der zehn bezog es sich? Vermutlich handelt es sich um eine Beschreibung der Verwendung von Snippets in Visual Studio.
Peter Mortensen

1

Wählen Sie in Visual Studio 2019 Ihre Eigenschaften wie folgt aus:

Geben Sie hier die Bildbeschreibung ein

Dann drücken Ctrl+r Dann drückenCtrl+e

Ein Dialogfeld mit der Vorschau der Änderungen, die an Ihrem Code vorgenommen werden, wird angezeigt. Wenn alles gut aussieht (was meistens der Fall ist), drücken Sie OK.


0

Ich habe Visual Studio nicht mehr auf meinem Computer installiert (und ich verwende Linux), aber ich erinnere mich, dass irgendwo in einem der Menüs ein Assistent versteckt war, der den Zugriff auf einen Klassenersteller ermöglichte.

Mit diesem Assistenten können Sie alle Details Ihrer Klassen definieren, einschließlich Methoden und Attribute. Wenn ich mich gut erinnere, gab es eine Option, mit der Sie Visual Studio bitten konnten, die Setter und Getter automatisch für Sie zu erstellen.

Ich weiß, dass es ziemlich vage ist, aber probieren Sie es aus und Sie werden es vielleicht finden.


0

Geben Sie hier die Bildbeschreibung ein

Im Auftrag des Visual Studio-Tools können wir mithilfe eines Online-Tools namens C # -Eigenschaftsgenerator problemlos C # -Eigenschaften generieren .


3
nutzlose Funktion
SeReGa

0

Holen Sie sich zuerst die Erweiterung, drücken Sie einfach ( Ctrl+ Shift+ X) und installieren Sie den Getter Setter ....

Wählen Sie danach einfach Ihre Variable aus und klicken Sie mit der rechten Maustaste. Zur Befehlspalette gehen ...

Und geben Sie getter ein ... Es wird vorgeschlagen, get- und set-Methoden zu generieren. Klicken Sie darauf ...


1
Was meinst du mit "First get Extension" ?
Peter Mortensen

In welchem ​​Kontext sollte Strg + Umschalt + X gedrückt werden?
Peter Mortensen

-4

Sie drücken einfach Alt+ Insin Android Studio.

Nachdem Sie Variablen deklariert haben, erhalten Sie die Getter und Setter im generierten Code.


Niemand fragte nach Android Studio
warzone_fz

Die Frage lautet: "Wie können wir in Visual Studio Getter und Setter generieren?" . Visual Studio ist nicht dasselbe wie Android Studio .
Peter Mortensen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.