Frage

Mit Enterprise Architect (Version 7.5), ich bin versucht, die Codegenerierung für C # zu verfeinern. Um ein Attribut mit einem Anfangswert zu machen, dass ein String erzeugt richtig ist, ist die einzige Art, wie ich erfolgreich war ist mit dem folgenden Code. Weiß jemand, ob ein einfacher Weg, dies zu tun? Es scheint zur Zeit ein wenig aufgedunsen.

%if attType=="string" and attInitial!=""%
 = "
%elseIf attInitial!=""%
 = 
%endIf%
%attInitial ? value%
%if attType=="string" and attInitial!=""%
"
%endIf%
War es hilfreich?

Lösung

%if attInitial!=""% 
 =  
%attInitial% 
%endIf% 

EA attInitial entspricht in UML Property.default.

  

default: String [0..1]

     

Eine Zeichenfolge, die ausgewertet einem Standardwert für das Attribut zu geben, wenn ein Objekt der besitzenden Klasse instanziiert wird. - UML 2.2 Infrastruktur 10.2.5, Betonung hinzugefügt

So nach UML, wenn der Typ der Eigenschaft String ist, dann sollte der Wert attInitial ein Ausdruck sein, die auf eine Zeichenfolge auswertet, nicht den Inhalt eines Zeichenfolgenliterals.

Wenn Sie es nicht mögen, einen Nicht-UML-complient Erweiterung Stringliteral Wert sein, müssen Sie etwas ein wenig komplizierter schreiben, was Sie oben getan haben, zu handhaben zu entkommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top