在 uml 中表示 C# 自动实现的属性

Representing C# auto-implemented properties in uml

我正在创建一个 uml 图来帮助我更好地理解一些由第三方编写的源代码。在创建我的图表时,我是否应该包括一个私有字段和一个 public 属性,在这种情况下使用自动实现的属性:

-名称:字符串
+名称:字符串

或者我应该只使用图中的 public 属性:

+姓名:字符串

在 UML 中,class 实体之间的关系比它们的属性(例如变量、属性和方法)更重要。这就是为什么您应该省略私有变量以使图表简洁的原因。如果 public 属性 X of class A 被 class B 使用,请使其简洁:表明 B 使用 A:画一个从 BA 的箭头而不显示 属性.

class A
{
    public int X { get; set; }
}

class B
{
    public int Twice(A a) 
    {
        return a.X * 2;
    }
}

...uml diagram to...better understand some source code...third-party...should I include both a private field and a public...

关注对您来说重要的级别。

就我个人而言,我会继续使用自动代码逆向工程(EA, doxygen UML_LOOK、...)

创建的 UML 类 结果

有关适当的一些讨论,另请参阅Stack Overflow: How to represent a C# property in UML?