如何指定列表作为“返回类型”对于 UML 接口属性

发布于 2024-12-25 09:28:57 字数 692 浏览 1 评论 0原文

在我的 Visio 2007 UML 文档中,我无法弄清楚如何向返回通用 List 类型的接口添加操作。

例如:

假设我有一个名为“MyClass”的类和一个名为“IFace”的接口。 IFace 具有返回 MyClass 通用列表的方法签名。

为了清楚起见,下面是 C# 代码的示例:

namespace StackO
{
    public interface IFace
    {
        List<MyClass> SomeMethod(string data);    
    }

    public class MyClass
    {
    }
}

这是我遇到问题的屏幕截图: 在此处输入图像描述

似乎是将 List 指定为的唯一方法我的返回类型是创建另一个用户定义的数据类型,该数据类型显式编写为 List。既然如此,那就这样吧。但是,我发布此内容是希望有更好/正确的方法来做到这一点。

如何将 Visio 界面操作的返回类型定义为用户定义数据类型的通用列表?

In my Visio 2007 UML document I am unable to figure out how I can add an operation to an Interface that returns a generic List<MyCustomType> type.

For example:

Say I have a class named "MyClass" and an Interface named "IFace". IFace has a signature of a method that returns a Generic List of MyClass.

For clarity, here's an example of the C# code:

namespace StackO
{
    public interface IFace
    {
        List<MyClass> SomeMethod(string data);    
    }

    public class MyClass
    {
    }
}

Here's a screenshot of where I'm stuck:
enter image description here

It seems as though the only way to specify a List<MyClass> as my Return Type is to create another user-defined datatype that is explicitly written as List<MyClass>. If this is the case, so be it. However, I'm posting this in hopes that there is a better/proper way to do this.

How can I define the Return Type of an Operation of a Visio Interface to be a Generic List of a User-Defined Datatype?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝颜夕 2025-01-01 09:28:57

在类图中属性>转到操作>选择您有兴趣更改的返回类型并单击属性。

在下一个对话框中,您将可以选择设置前缀 List< 和后缀 >

这样您就可以将返回类型指定为List

我在 Visio 2010 中看到此选项。但我不确定此选项在 Visio 2007 中是否可用。

In the Class diagram properties > Go to operations > select the return type you are interested in changing and click properties.

In the next dialog you will have option for setting prefix List< and suffix >.

This way you can specify the return type as List<>.

I see this option in Visio 2010. But I am not sure if this option is available in Visio 2007.

难得心□动 2025-01-01 09:28:57

UML 类图中不存在 T1 这样的东西

如果要指定该方法返回多个值,正确的表示法是:

SomeMethod(data: String) : MyClass [*]

此表示法比 C# 使用的表示法强大得多。 列表SomeMethod(string data) 没有提供有关方法契约的信息。使用 UML,您知道 in:

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]

是不正确的,尽管在互联网上被广泛使用。

There is no such a thing as T1<T2> in UML class diagrams.

If you want to specify that the method returns several values, the correct notation is:

SomeMethod(data: String) : MyClass [*]

This notation is much more powerful than the one used by C#. List<MyClass> SomeMethod(string data) gives no information about the contract of the method. With UML, you know that in:

SomeMethod(data: String) : MyClass [*]
SomethingElse() : String [1..*]
LastExample(number: UnlimitedNatural) : Integer [0..1]

SomeMethod returns a sequence containing zero or more elements. SomethingElse returns a sequence of one or several elements: this sequence is never empty. Finally, LastExample returns an optional value. This could be expressed in C# as int? LastExample(uint number) — see, no IEnumerable here.

Also note that:

SomeMethod(data: String) : MyClass [0..*]

shouldn't be used, since [*] means the same thing and is shorter. As for:

SomeMethod(data: String) : MyClass [0..n]

is incorrect, despite being used a lot on the internet.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文