C# delegate dictionary add -


i want create method this:

private static void addorappend<k>(this dictionary<k, multicastdelegate> firstlist, k key, multicastdelegate newfunc) {     if (!firstlist.containskey(key))     {         firstlist.add(key, newfunc);     }     else     {         firstlist[key] += newfunc;  // line fails     } } 

but fails because says can't add multicast delegates. there i'm missing? thought delegate keyword shorthand class inherits multicastdelegate.

firstlist[key] = (multicastdelegate)delegate.combine(firstlist[key],newfunc); 

with test:

        var data = new dictionary<int, multicastdelegate>();          action action1 = () => console.writeline("abc");         action action2 = () => console.writeline("def");         data.addorappend(1, action1);         data.addorappend(1, action2);         data[1].dynamicinvoke(); 

(which works)

but tbh, use delegate in place of multicastdelegate; largely hangover never worked. or better; specific type of delegate (perhaps action).


Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -