So generieren Sie leere Get & Set-Anweisungen mit CODEDOM in c #

8

Derzeit erzeugt der Code, den ich habe, die Eigenschaften wie

%Vor%

Ich wollte, dass die Eigenschaften einfach sind wie ...

%Vor%

Der Code, den ich bei mir habe, ist

%Vor%

Jeder bitte helfen Sie. Vielen Dank im Voraus.

    
suman 03.12.2012, 07:54
quelle

4 Antworten

11

Wie Botz3000 schon erwähnt hat, ist es offiziell nicht möglich. Mit dem folgenden Hack können Sie es jedoch implementieren:

%Vor%

Wenn Sie { get; set; } an den Feldnamen anhängen, wird eine Eigenschaft im tatsächlichen Quellcode erzeugt.

    
Wouter de Kort 03.12.2012, 08:08
quelle
2

Zusätzlich zu der Antwort von Wouter können Sie das Semikolon am Ende des Codes der Eigenschaft loswerden, indem Sie Folgendes tun:

%Vor%

da in C # anders als in C ++, haben wir keinen Semikolon nach einer Klammer in irgendeiner Sache.

    
Serguei Fedorov 24.10.2013 18:15
quelle
0

Nein, das ist nicht möglich. Automatische Eigenschaften sind eine sprachspezifische Funktion, sodass Sie keine Möglichkeit finden, diese zu generieren.

    
Botz3000 03.12.2012 08:01
quelle
0

Das ist eine alte Frage, aber es ist erwähnenswert, dass die Antwort von "@Serguei Fedorov" nicht länger gilt (sie ist nur für c # 1.0 bis c # 2.0 gültig)

Die Lösung zum Ersetzen von "};" mit "}" sollte vermieden werden, weil "};" wird für die Syntax von Object- und Auflistungsinitialisierer ab C # 3.0 verwendet.

Überprüfen Sie die Objekt- und Auflistungsinitialisierer .

Beispiel:

%Vor%

Alternative Lösung

Sie können die neue .NET Compiler Platform ("Roslyn") verwenden, die C # 1.0 bis c # 6.0 unterstützt.

Die Beispiele enthalten ConvertToAutoProperty - Ein Code-Refactoring zum Ändern einer einfachen Eigenschaft mit einem trivialen Getter und Setter in eine Auto-Eigenschaft.

Wenn Sie an CodeDom interessiert sind, gibt es eine neue CodeDOM Provider für .NET Compiler Platform ("Roslyn" ) , die von nuget installiert werden können

    
M.Hassan 07.03.2017 13:39
quelle

Tags und Links