Create an instance of a delegate

WTSupported in traditional Synergy on Windows




delegate = new DotNetDelegate(assembly, type, object, method)



The returned delegate instance (@DotNetDelegate).


The assembly that contains this delegate type.


The fully‑qualified type name of the delegate, which includes the type’s namespace but not its assembly name.


A reference to an object that owns the specified method. (Object is ^NULL if you don’t want an instance method.)


The name of an instance method in object’s class.


The DotNetDelegate constructor creates an instance of a delegate, which binds a Synergy DBL instance or static method to a delegate defined in the .NET assembly.

If the .NET Framework throws an exception, a corresponding DotNetException will be thrown.

The search for type is case‑sensitive. If the type cannot be found in the specified assembly or it is not public, a “Field/Type/Property/Event not found” error ($ERR_MISSFLD) occurs. If method is not the name of an instance method within object’s class, an $ERR_MISSMETH occurs.

When the delegate function is invoked, the arguments passed to it will correspond to the type definition for the delegate. The following conversions will occur:


The example below creates a System.EventHandler delegate and stores it in an instance called button_OnClick. See Sample programs for an example in the context of a complete program.

button_OnClick = new DotNetDelegate(sys, "System.EventHandler", ^NULL,
    &  "ns1.cls1.static_meth1")