C#コールバック関数に委譲した処理をすべて削除する方法はありますでしょうか。
下記のようにforeachでアクセスしてみたのですが、エラーが出てしまいました。
public class Test1{ public delegate void CallbackEventHandler(string something); public event CallbackEventHandler test; public void RemoveAllEvents() { /*test.GetInvocationList().Lengthで長さは取れた foreach (delegate d in test.GetInvocationList()) { test-= (CallbackEventHandler)d; } */ } } public class Test2{ Test1 test = new Test1(); public void main() { test.RemoveAllEvents(); // こんな感じでイベントを削除したい test.test += new Test1.CallbackEventHandler(Test); test.SetCallbackFunction("Test"); } public void Test(string something){ Debug.Log("aaaa"); }
https://teratail.com/questions/325593
愉快犯
回答2件
あなたの回答
tips
プレビュー