7

在 StarUML 5.0 中,我试图定义一个具有 Guid[] 类型属性的类(Guid 结构的数组)。但不允许输入“-guids : Guid[]”,因为 StarUML 会自动丢弃方括号。

我没有尝试过其他建模工具......只是想知道如何使用 StarUML 来做到这一点。

如果我提供数组的长度,StarUML 似乎可以接受,例如“-guids : Guid[10]”,但在 StarUML 生成的代码中,该字段类似于

private Guid guids; //the square brackets are missing;

或者我可以添加一个星号,如“-guids : Guid*”,在生成的代码中,字段是这样的

private Guid* guids; 

这也不是我想要的,即使在 C++ 中指针和数组在概念上是可互换的。(我正在用 C# 编码)

4

1 回答 1

12

StarUML 对数组的定义与标准 UML 略有不同。对于您的具体问题,我将使用 [*] 来定义数组。下面的第一个示例描述了这一点。

定义一个元素个数未定义的数组:

-guids: Guid[*]

定义具有特定数量元素的数组:

-guids: Guid[16]

用未定义的元素数定义一个以 0 为基数的数组:

-guids: Guid[0..*]

定义一个基数为 1 的数组,其元素个数未定义:

-guids: Guid[1..*]

定义具有特定数量元素的特定基本数组:

-guids: Guid[1..100]
于 2011-11-09T16:37:41.380 回答