X Tutup
using System; namespace Python.Test { /// /// Supports CLR event unit tests. /// public delegate void EventHandlerTest(object sender, EventArgsTest e); #pragma warning disable 67 // Unused events, these are only accessed from Python public class EventTest { public static event EventHandlerTest PublicStaticEvent; protected static event EventHandlerTest ProtectedStaticEvent; internal static event EventHandlerTest InternalStaticEvent; private static event EventHandlerTest PrivateStaticEvent; public event EventHandlerTest PublicEvent; protected event EventHandlerTest ProtectedEvent; internal event EventHandlerTest InternalEvent; private event EventHandlerTest PrivateEvent; public event OutStringDelegate OutStringEvent; public event OutIntDelegate OutIntEvent; public event RefStringDelegate RefStringEvent; public event RefIntDelegate RefIntEvent; public static int s_value; public int value; public EventTest() { value = 0; } static EventTest() { s_value = 0; } public void OnPublicEvent(EventArgsTest e) { if (PublicEvent != null) { PublicEvent(this, e); } } public void OnProtectedEvent(EventArgsTest e) { if (ProtectedEvent != null) { ProtectedEvent(this, e); } } public static void OnPublicStaticEvent(EventArgsTest e) { if (PublicStaticEvent != null) { PublicStaticEvent(null, e); } } protected static void OnProtectedStaticEvent(EventArgsTest e) { if (ProtectedStaticEvent != null) { ProtectedStaticEvent(null, e); } } public void OnRefStringEvent(ref string data) { RefStringEvent?.Invoke(ref data); } public void OnRefIntEvent(ref int data) { RefIntEvent?.Invoke(ref data); } public void OnOutStringEvent(out string data) { data = default; OutStringEvent?.Invoke(out data); } public void OnOutIntEvent(out int data) { data = default; OutIntEvent?.Invoke(out data); } public void GenericHandler(object sender, EventArgsTest e) { value = e.value; } public static void StaticHandler(object sender, EventArgsTest e) { s_value = e.value; } public void OutStringHandler(out string data) { data = value.ToString(); } public void OutIntHandler(out int data) { data = value; } public void RefStringHandler(ref string data) { data += "!"; } public void RefIntHandler(ref int data) { data++; } public static void ShutUpCompiler() { // Quiet compiler warnings. var e = new EventTest(); EventHandlerTest f = e.GenericHandler; ProtectedStaticEvent += f; InternalStaticEvent += f; PrivateStaticEvent += f; e.ProtectedEvent += f; e.InternalEvent += f; e.PrivateEvent += f; } } #pragma warning restore 67 public class EventArgsTest : EventArgs { public int value; public EventArgsTest(int v) { value = v; } } }
X Tutup