类图中初始化的委托

时间:2015-11-23 10:22:31

标签: c# delegates class-diagram

我使用Visual Studio 2015,并创建了一个类图,以概述我最常用的类及其成员。

我在名为 UserMessage

的类中定义了一个委托
public delegate void ProcessUserMessage(UserMessage message);

我在另一个类中使用此委托:

public UserMessage.ProcessUserMessage ProcessUserMessage;

到目前为止没有任何问题。

因为我讨厌每次都测试回调为null,所以我在初始化时挂起了一个no-op事件处理程序,如建议here

public UserMessage.ProcessUserMessage ProcessUserMessage = delegate { };

但是当我这样做,并重新打开类图时,它无法加载,说:

  

找不到类图中的一个或多个形状的代码' ClassDiagram1.cd'。您想尝试自动修复类图吗?

当然,自动修复并不起作用; - (

即使我把这个初始化放在课堂上也是如此。构造函数,而不是在声明,出现相同的错误。

我不明白什么是错的。有线索吗?

<小时/> 的更新 我只使用失败的代码创建了一个空白项目:

public partial class MainWindow
{
    public UserMessage.ProcessUserMessageDelegate ProcessUserMessage = delegate { };
}

public class UserMessage
{
    public delegate void ProcessUserMessageDelegate(string foo);
}

奇怪的是,MainWindow的类图加载正常,但对于UserMessage,它失败了。但我没有改变UserMessage的任何标志。

如果我将类MainWindow更改为:

,则加载OK
public partial class MainWindow
{
    public UserMessage.ProcessUserMessageDelegate ProcessUserMessage;
}

0 个答案:

没有答案