В диаграммах классов UML нет такой вещи, как T1<T2>
.
Если вы хотите указать, что метод возвращает несколько значений, правильная запись:
SomeMethod(data: String) : MyClass [*]
Эта нотация намного мощнее, чем в C #.List<MyClass> SomeMethod(string data)
не дает информации о договоре метода.С UML вы знаете, что в:
SomeMethod(data: String) : MyClass [*]
SomethingElse() : String [1..*]
LastExample(number: UnlimitedNatural) : Integer [0..1]
SomeMethod
возвращает последовательность, содержащую ноль или более элементов.SomethingElse
возвращает последовательность из одного или нескольких элементов: эта последовательность никогда не бывает пустой.Наконец, LastExample
возвращает необязательное значение.Это может быть выражено в C # как int? LastExample(uint number)
- см. Здесь нет IEnumerable
.
Также обратите внимание, что:
SomeMethod(data: String) : MyClass [0..*]
не следует использовать, поскольку [*]
означаеттоже самое и короче.Что касается:
SomeMethod(data: String) : MyClass [0..n]
неверно, несмотря на то, что его часто используют в Интернете.