在UML类图中表示C#通用方法

And*_*ech 9 c# generics uml visio class-diagram

我有以下界面:

public interface IRegisterable
{
   T Register<T>(string username, string passw) where T : User, ICanLogin, new();
}
Run Code Online (Sandbox Code Playgroud)

User是一个抽象类,ICanLogin是另一个接口.

现在,我想在Visio中的UML类图中用其方法表示上面的接口.

如何在类图中用约束表示上面的泛型方法?

Pet*_*ham 4

UML 不直接支持类型参数方法。

\n\n

您将得到的最接近的是定义一个嵌套类,该类具有带有构造型的类型约束,您将其解释为意味着它是一个类型参数,并定义Register据此定义操作。

\n\n
+---------------------------------------------------+\n|                   \xc2\xabinterface\xc2\xbb                     |\n|                  IRegisterable                    |\n+---------------------------------------------------+\n| + Register (string username, string passw) : T    |\n+---------------------------------------------------+\n\n    +---------------+           +---------------+\n    |  \xc2\xababstract\xc2\xbb   |           |  \xc2\xabinterface\xc2\xbb  |\n    |     User      |           |   ICanLogin   |\n    +---------------+           +---------------+\n            .                           .\n           /_\\                         /_\\\n            |                           .\n            +-----------+   .............\n                        |   .\n                +-------------------+              \n                |  \xc2\xabtypeParameter\xc2\xbb  |\n                | IRegisterable::T  |\n                +-------------------+           \n                | + new()           |\n                +-------------------+           \n\n    note: T is a nested class within IRegisterable\n
Run Code Online (Sandbox Code Playgroud)\n