В настоящее время я делаю проект, в котором мы должны сделать код из диаграмм UML. Я понимаю анатомию диаграммы классов UML, но мне сложно понять, что означает <<property>>
и как внедрить его в мой код.
<<property>>
является стереотипом (как и большинство вещей в UML, охватываемых << >>
). В этом случае это указывает на то, что вы должны реализовать методы получения и установки для соответственно названных частных атрибутов класса. Например, для Status
вы бы реализовали getStatus
и setStatus
(или все, что используется на целевом языке для этой цели). Поскольку существует также ограничение { readonly }
для Name
вы просто должны реализовать getName
. Вы, вероятно, должны догадаться, что имя атрибута _bookName
.
Поскольку вы пометили это как [C#]
, вы должны знать, что свойство является частью первого класса языка С#. Классы могут иметь свойства любого типа. Получатели и установщики могут иметь разные уровни доступа (например, получатель, общедоступный, в то время как установщик является частным). Доступны свойства только для чтения (без установщика) и только для записи (без установщика). Если у свойства есть тривиальное определение (получатель и установщик просто получают доступ к частному вспомогательному полю), тогда вы можете использовать автоматическое свойство с простым, простым в выражении и понимании синтаксисом.
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; }
}
Если метод установки (или метод получения) опущен, свойство становится доступным только для чтения (или только для записи).