Wie erzeuge ich einen Konstruktor aus Klassenfeldern mit Visual Studio (und / oder ReSharper)?
Ich habe mich daran gewöhnt, viele der Java IDEs (Eclipse, Netbeans, IntelliJ), die Sie mit einem Befehl zum generieren einer Standard-Konstruktor für eine Klasse auf der Basis der Felder in der Klasse.
Beispiel:
public class Example
{
public decimal MyNumber { get; set; }
public string Description { get; set; }
public int SomeInteger { get; set; }
//↓↓↓ This is what I want generated ↓↓↓
public Example(decimal myNumber, string description, int someInteger)
{
MyNumber = myNumber;
Description = description;
SomeInteger = someInteger;
}
}
Dass ein Konstruktor füllen Sie die alle Felder eines Objekts ist eine so häufige Aufgabe in den meisten OOP-Sprachen, gehe ich davon aus, dass es ist ein Weg für mich, um Zeit zu sparen schreiben dieses boilerplate-code in C#. Ich bin neu in der C# Welt, so Frage ich mich, wenn ich bin fehlt etwas Grundsätzliches über die Sprache? Gibt es eine option in Visual Studio, liegt auf der Hand?
InformationsquelleAutor der Frage Elijah | 2010-06-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Resharper bietet eine Erzeugen-Konstruktor tool wo man wählen Sie jedes Feld/Eigenschaften, die Sie wollen initialisiert. Ich verwende Alt+Ins hot-key für den Zugriff auf diese.
InformationsquelleAutor der Antwort James Kolpack
In visual studio 2015 Update3 ich haben dieses feature.
nur durch das Hervorheben von Eigenschaften und dann drücken Sie die Taste Strg + . und Drücken Sie dann Generieren Konstruktor.
Zum Beispiel, wenn Sie hervorgehoben haben 2 Eigenschaften es wird Sie vorschlagen, um zu erstellen Sie einen Konstruktor mit 2 Parametern und, wenn Sie ausgewählt haben 3 es wird vorschlagen, eine mit 3 Parametern und so weiter.
funktioniert auch mit VS2017.
InformationsquelleAutor der Antwort Pouya Samie
C# Hinzugefügt ein neues feature in Visual Studio 2010 genannt, generieren von Verwendung. Die Absicht ist, generieren Sie den standard-code von einer Nutzung Muster. Eines der features ist die Erzeugung eines Konstruktors auf Basis einer Initialisierungs-Muster.
Die Funktion ist zugänglich über das smart-tag angezeigt wird, wenn das Muster erkannt wird.
Zum Beispiel. Können sagen, ich habe die folgende Klasse
Und Schreibe ich Folgendes in meine Bewerbung
Einen Konstruktor der Einnahme ein
int
nicht vorhanden, sodass ein Smarttag zeigen, und eine der Optionen "Generate constructor stub". Die Auswahl, ändern Sie den code fürMyType
werden die folgenden.InformationsquelleAutor der Antwort JaredPar
Könnte man ein makro schreiben, um dies zu tun -- verwenden Sie die Visual Studio-parser zum abrufen von Informationen über die Klasse Mitglieder.
Schrieb ich ein ähnliches makro. (Ich werde teilen den code unten). Das makro habe ich geschrieben, ist für das kopieren weiterleiten alle Konstruktoren in der Basisklasse, wenn Sie von Ihr Erben (nützlich für Klassen wie Exception, die viele von überlasten auf die ctor).
Hier mein makro (wieder, es doesn ' T lösen Ihr problem, aber Sie können sich wahrscheinlich ändern, das zu tun, was Sie wollen)
InformationsquelleAutor der Antwort JMarsch
Hier ist ein makro, das ich für diesen Zweck nutzen. Es generiert einen Konstruktor, der von Feldern und Eigenschaften, die einen privaten setter.
InformationsquelleAutor der Antwort Antoine Aubry
Vielleicht könnten Sie versuchen, diese: http://cometaddin.codeplex.com/
InformationsquelleAutor der Antwort Simon
Als der VS 2017, dieser sieht auch eine eingebaute Funktion. Drücken Sie Strg + .während sich der cursor in der Klasse Körper, und wählen Sie "Generate Constructor" von der Schnellen Aktionen und Refactorings dropdown.
InformationsquelleAutor der Antwort lt1
Ich weiß, das ist eine alte Frage, aber falls jemand noch auf der Suche für Sie tun können dies ganz einfach mit Resharper 8+. Die
ctorf
ctorp
undctorfp
- snippets generieren, Konstruktoren, füllen Sie alle Felder, Eigenschaften oder Felder und Eigenschaften der Klasse.InformationsquelleAutor der Antwort Mike B
Hier JMarsh's VS-makro geändert, erzeugen Sie einen Konstruktor auf der Basis der Felder und Eigenschaften der Klasse.
InformationsquelleAutor der Antwort rybo103
Für VS 2015 ich fand eine Erweiterung , tut genau dies. Es scheint gut zu funktionieren und hat eine relativ hohe Menge der downloads. Also, wenn Sie nicht können oder nicht wollen, zu verwenden, Resharper installieren Sie diese stattdessen.
UPDATE
Können Sie auch erwerben, es über nuget
InformationsquelleAutor der Antwort TKharaishvili
Ich bin mit dem folgenden trick:
Wähle ich die Deklaration der Klasse mit den Daten-Mitglieder und drücken Sie:
Strg+CShift+Strg+CStrg+V.
Das PROGRAMM bekommt die Erklärung aus der Zwischenablage,
findet den Namen der Klasse, findet alle Mitglieder und Ihre Typen,
erzeugt Konstruktor und kopiert es alle wieder in die Zwischenablage.
Tun wir es, Studienanfänger mit auf meine "Programmierung I" übung (Karls-Universität Prag)
und die meisten Studenten wird es gemacht, bis zum Ende der Stunde.
Wenn Sie sehen möchten der source-code, lassen Sie es mich wissen.
InformationsquelleAutor der Antwort Tom Holan