X Tutup
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the Apache 2.0 License. // See the LICENSE file in the project root for more information. using System; namespace IronPythonTest { public delegate void ParamsDelegate(object sender, params object[] args); public delegate void BigParamsDelegate(object sender, object a, object b, object c, object d, params object[] args); public delegate void OutDelegate(object sender, out object res); public delegate void RefDelegate(object sender, ref object res); public delegate string OutReturnDelegate(object sender, out object res); public delegate int RefReturnDelegate(object sender, ref object res); public delegate void SimpleDelegate(); public delegate void SimpleDelegateWithOneArg(object arg1); public delegate object SimpleReturnDelegate(); public delegate object SimpleReturnDelegateArg1(object arg1); public delegate object SimpleReturnDelegateArg2(object arg1, object arg2); public delegate object IntArgDelegate(int arg1, int arg2); public delegate object StringArgDelegate(string arg1, string arg2); public class DelegateTest { // custom delegates used for various event handlers... public static event EventHandler StaticEvent; public static event EventHandler StaticGenericEvent; public static event ParamsDelegate StaticParamsEvent; public static event OutDelegate StaticOutEvent; public static event RefDelegate StaticRefEvent; public static event BigParamsDelegate StaticBigParamsEvent; public static event OutReturnDelegate StaticOutReturnEvent; public static event RefReturnDelegate StaticRefReturnEvent; public event EventHandler Event; public event EventHandler GenericEvent; public event ParamsDelegate ParamsEvent; public event OutDelegate OutEvent; public event RefDelegate RefEvent; public event BigParamsDelegate BigParamsEvent; public event OutReturnDelegate OutReturnEvent; public event RefReturnDelegate RefReturnEvent; public static SimpleDelegate Simple = new SimpleDelegate(SimpleMethod); public static void SimpleMethod() { } public static void InvokeUntypedDelegate(Delegate d, params object[] args) { d.DynamicInvoke(args); } public static void FireStatic(object sender, EventArgs e) { StaticEvent(sender, e); } public static void FireGenericStatic(object sender, EventArgs e) { StaticGenericEvent(sender, e); } public static void FireParamsStatic(object sender, params object[] args) { StaticParamsEvent(sender, args); } public static void FireOutStatic(object sender, out object res) { StaticOutEvent(sender, out res); } public static void FireBigParamsStatic(object sender, object a, object b, object c, object d, params object[] args) { StaticBigParamsEvent(sender, a, b, c, d, args); } public static void FireRefStatic(object sender, ref object res) { StaticRefEvent(sender, ref res); } public static string FireOutReturnStatic(object sender, out object res) { return StaticOutReturnEvent(sender, out res); } public static int FireRefReturnStatic(object sender, ref object res) { return StaticRefReturnEvent(sender, ref res); } public void FireInstance(object sender, EventArgs e) { Event(sender, e); } public void FireGeneric(object sender, EventArgs e) { GenericEvent(sender, e); } public void FireParams(object sender, params object[] args) { ParamsEvent(sender, args); } public void FireOut(object sender, out object res) { OutEvent(sender, out res); } public void FireRef(object sender, ref object res) { RefEvent(sender, ref res); } public void FireBigParams(object sender, object a, object b, object c, object d, params object[] args) { BigParamsEvent(sender, a, b, c, d, args); } public string FireOutReturn(object sender, out object res) { return OutReturnEvent(sender, out res); } public int FireRefReturn(object sender, ref object res) { return RefReturnEvent(sender, ref res); } } }
X Tutup