古怪我一直沒能找到答案在文檔或網頁上,雖然這似乎是一個簡單的問題:C#事件,註銷,恕不另行寄存器
想象我註冊一個C#事件在條件塊:
void Execute()
{
if(loader.AlreadyCompleted)
{
DoSomething();
}
else
{
loader.Completed += DoSomething;
}
}
在本例中,加載器將觸發Completed
事件。如果它已經發生AlreadyCompleted
將是真實的,否則它是假的,我想註冊Completed
事件以便在執行DoSomething
之前等待。
現在想象我有一箇中止功能,可以隨時觸發。 在中止功能中,我需要從Completed
事件中取消註冊。
void Abort()
{
loader.Completed -= DoSomething;
}
會發生什麼,如果裝載機正準備啓動時,我們從來沒有執行的行loader.Completed += DoSomething;
? 我們可以註銷尚未註冊的活動嗎?有沒有辦法檢查我們是否已註冊?這種情況下的最佳做法是什麼?
你還試過嗎?這個問題對我來說過於理論化,這使得它太寬泛了。 –
我在詢問時沒有嘗試過。由於我沒有在StackOverflow中找到答案,所以我決定詢問,因爲我當然不是唯一一個正在尋找這個信息的人,所以讓這裏的信息可能會有所幫助。我只是看到它是重複的。這是因爲我用「註冊」而不是「訂閱」來搜索,我的錯誤 –
請閱讀[mcve]是什麼。 –