0
我使用Visual Studio 2015,並且創建了一個類圖來概述我最常用的類和它們的成員。在類圖中初始化代表
我有一個名爲UserMessage類中定義的委託:
public delegate void ProcessUserMessage(UserMessage message);
我用這個代表在其他類:
public UserMessage.ProcessUserMessage ProcessUserMessage;
到目前爲止,沒有任何問題。
因爲我討厭每次測試爲空的回調,我掛接在初始化無操作的事件處理程序,如建議here:
public UserMessage.ProcessUserMessage ProcessUserMessage = delegate { };
但是,當我做到這一點,並重新打開類它無法加載,說:
代碼無法找到類圖'ClassDiagram1.cd'中的一個或多個形狀。你想嘗試自動修復類圖嗎?
即使當我把這個initiatlization在類的構造函數,而不是在聲明中的自動修復並不當然;-(
的工作,會出現同樣的錯誤。
我不明白什麼是錯的任何線索
更新:? 我創建了一個空白的項目,只是失敗的代碼:
public partial class MainWindow
{
public UserMessage.ProcessUserMessageDelegate ProcessUserMessage = delegate { };
}
public class UserMessage
{
public delegate void ProcessUserMessageDelegate(string foo);
}
奇怪的是,MainWindow的類圖加載正常,但對於UserMessage,它失敗。但是我沒有改變UserMessage的任何標誌。
如果我改變類主窗口到它加載OK:
public partial class MainWindow
{
public UserMessage.ProcessUserMessageDelegate ProcessUserMessage;
}
請在具有最小元素的新項目中再次嘗試。目前尚不清楚您是否確定了錯誤的正確來源。 –
我試過,@HenkHolterman,但它仍然是一樣的。 有趣的是,它正確地顯示了主類圖,但未能加載** UserMessage **類圖。但是我在主類中進行了更改,而不是在UserMessage類中 – Anderman
然後發佈完整的源代碼(而不是圖),標記(註釋掉)導致問題的原因。 –