You really need to make a dictionary with delegates as the value, and not a class containing the method you’re wanting to call.
A delegate is nothing more than a type that can represent a method that can be passed around.
You’d make such a list like this:
public class MyClass{ public delegate void DoSomethingDelegate(string text, int value); // this is the signature of each of the methods.
public void DoSomething(string text, int value) { // something here. } public void DoSomethingElse(string text, int value) { // something else here. }
public static void Main(string[] args) { Dictionary<string, DoSomethingDelegate> dict = new Dictionary<string, DoSomethingDelegate>(); dict.Add(“one”, new DoSomethingDelegate(DoSomething)); dict.Add(“two”, new DoSomethingDelegate(DoSomethingElse)); dict["one"](“Hello”, 1); dict["two"](“Hola”, 2); }}
See this link for more info.
Pass parameters to methods while invoking from Dictionary Key
You really need to make a dictionary with delegates as the value, and not a class containing the method you’re wanting to call.
A delegate is nothing more than a type that can represent a method that can be passed around.
You’d make such a list like this:
public class MyClass
{
public delegate void DoSomethingDelegate(string text, int value); // this is the signature of each of the methods.
public void DoSomething(string text, int value)
{
// something here.
}
public void DoSomethingElse(string text, int value)
{
// something else here.
}
public static void Main(string[] args)
{
Dictionary<string, DoSomethingDelegate> dict = new Dictionary<string, DoSomethingDelegate>();
dict.Add(“one”, new DoSomethingDelegate(DoSomething));
dict.Add(“two”, new DoSomethingDelegate(DoSomethingElse));
dict["one"](“Hello”, 1);
dict["two"](“Hola”, 2);
}
}
See this link for more info.
Advertisement