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 回答