C#:帮助理解UML类图中的<< property >>

时间:2019-02-10 21:37:55

标签: c# class uml diagram

我目前正在做一个项目,我们必须从UML图制作代码。我了解UML类图的剖析,但是我无法理解<<property>>的含义以及如何将其实现到我的代码中。

enter image description here

2 个答案:

答案 0 :(得分:4)

<<property>>是一个刻板印象(就像<< >>包含的UML中的大多数内容一样)。在这种情况下,它指示您应为相应命名的类的私有属性实现getter和setter。例如。对于Status,您将实现getStatussetStatus(或为此目的在目标语言中使用的任何东西)。由于{ readonly }还有约束Name,因此您只需实现getName。您可能不得不猜测该属性的名称为_bookName

答案 1 :(得分:1)

由于您将其标记为[C#],因此您应该知道属性是C#语言的重要组成部分。类可以具有任何类型的属性。获取器和设置器可以具有不同的访问级别(例如,获取器是公共的,而设置器是私有的)。只读属性(无设置器)和仅写属性(无获取器)可用。如果该属性的定义很简单(getter和setter只需访问一个私有后备字段),则可以使用具有简单,易于表达和理解的语法的自动属性。

class MyClass {
    //this is a simple property with a backing field
    private int _someInt = 0;
    public int SomeInt {
        get { return _someInt; }
        set { _someInt = value; }    //"value" is a keyword meaning the rhs of a property set expression
    }

    //this is a similar property as an "auto property", the initializer is optional
    public int OtherInt { get; set; } = 0;

    //this is an auto-property with a public getter, but a protected setter
    public string SomeString { get; protected set; }
}

如果省略了setter(或getter),则该属性将变为只读(或只写)。