You can design the following types of C# delegates:
-
To create a delegate at the namespace level, create a class with the <<Delegate>> stereotype, and add an operation with the <<Delegate>> stereotype to this class and define a visibility for this operation. This visibility becomes the visibility of the delegate

{
public delegate int ActionOccurred();
}
-
To create a delegate in a class, or structure, you just have to create an operation with the <<Delegate>> stereotype. In the following example, Class worker contains an internal delegate designed as an operation with the <<Delegate>> stereotype

{
public class Worker
{
public delegate WorkStarted();
}
}