1

Enterprise Architect (バージョン 7.5)を使用して、C# のコード生成を改良しようとしています。文字列である初期値を持つ属性を適切に生成するために、私が成功した唯一の方法は、以下のコードを使用することです。これを行うためのより簡単な方法を知っている人はいますか? 現在、少し膨らんでいるようです。

%if attType=="string" and attInitial!=""%
 = "
%elseIf attInitial!=""%
 = 
%endIf%
%attInitial ? value%
%if attType=="string" and attInitial!=""%
"
%endIf%
4

1 に答える 1

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

EAattInitialは UML の Property.default に対応します。

デフォルト : 文字列 [0..1]

所有するクラスのオブジェクトがインスタンス化されるときに、属性のデフォルト値を与えるために評価される文字列。-- UML 2.2 インフラストラクチャ 10.2.5、強調を追加

したがって、UML によると、プロパティの型が文字列の場合、値attInitialは文字列リテラルの内容ではなく、文字列として評価される式である必要があります。

UML に準拠していない拡張文字列リテラル値にしたい場合は、エスケープを処理するために上記で行ったことよりも少し複雑なものを記述する必要があります。

于 2010-01-14T14:07:23.653 に答える