public static void Ref() { if (_nativeLibraryPtr == IntPtr.Zero) { _nativeLibraryPtr=NativeDLL.LoadLibrary(DllName); if(_nativeLibraryPtr==IntPtr.Zero) { Debug.LogError("Failed to load mrayGStreamer Library:"+DllName); } } if (!IsActive) { MyDelegate callback=new MyDelegate(CallBackFunction); IntPtr intptr_del=Marshal.GetFunctionPointerForDelegate(callback); mray_SetDebugFunction(intptr_del); MyDelegate2 callback2=new MyDelegate2(GetEngineTime); intptr_del=Marshal.GetFunctionPointerForDelegate(callback2); mray_SetGetEngineTime(intptr_del); } mray_gstreamer_initialize(); }
static void Main(string[] args) { MyDelegate2 method1 = MyMethods.Method1; MyDelegate2 method2 = MyMethods.Method2; MyDelegate2 method3 = MyMethods.Method3; MyDelegate2[] delegates = new MyDelegate2[3]; delegates[0] = method1; delegates[1] = method2; delegates[2] = method3; MyDelegate del = delegate(MyDelegate2[] dels) { int sum = 0; for (int i = 0; i < dels.Length; i++) { sum += dels[i](); MyDelegate2 d = dels[i]; } return sum / delegates.Length; }; int result = del(delegates); Console.WriteLine("Arifmetic average:" + result); Console.ReadKey(); }
public static int Main_old(String[] args) { Delegate_TestClass_delegate80 mc = new Delegate_TestClass_delegate80(); try { Delegate_TestClass_delegate80_Del md1 = new Delegate_TestClass_delegate80_Del(mc.DelegatedMethod1); md1 += new Delegate_TestClass_delegate80_Del(mc.DelegatedMethod2); MyDelegate2 md2 = new MyDelegate2(mc.DelegatedMethod4); md2 += new MyDelegate2(mc.DelegatedMethod3); Delegate_TestClass_delegate80_Del md3 = new Delegate_TestClass_delegate80_Del(mc.DelegatedMethod4) + new Delegate_TestClass_delegate80_Del(mc.DelegatedMethod3); Delegate_TestClass_delegate80_Del md4 = new Delegate_TestClass_delegate80_Del(md1) + md3; int i = 5; md4(out i, .25f); if (8 == i) retval ^= 0x10; } catch (System.Exception) { retval ^= 0x20; } if (0 == retval) Log.Comment("PASS"); else {Log.Comment("FAIL, 0x{0:X}"); Log.Comment(retval.ToString()); } return retval; }