【发布时间】:2015-03-12 11:29:55
【问题描述】:
我有一个关于 UML 数据类型的问题。
UML 上层结构说:
数据类型是其实例仅由其值标识的类型。
如果我理解正确,这意味着通过查看所有属性的值来检查相等性。
这是否也意味着 DataType 总是像 C# 结构一样被复制?
它们是按值传递给方法的吗?如果我将 DataType 分配给一个新变量,这是否会产生副本? (例如在 Alf 中)
我在互联网上找不到这个问题的答案。
【问题讨论】:
-
根据该定义,
string是 DataType,但string也是引用类型。基本上,UML“数据类型”是一个语义定义,它没有规定特定的实现(即它没有说明在 c# 中是使用引用类型还是值类型) -
好吧,如果您将其作为答案,我会接受。基本上,DataTypes 和 Classes 之间的唯一区别是它们的相等行为。这有点尴尬,因为原始类型是 DataTypes,我希望在分配给新变量时复制一个 Integer。
标签: c# struct uml call-by-value