C# 字典<;T、 代表>;具有不同类型的委托:更干净、非字符串的方法名?

C# 字典<;T、 代表>;具有不同类型的委托:更干净、非字符串的方法名?,c#,generics,dictionary,methods,delegates,C#,Generics,Dictionary,Methods,Delegates,必须有一个更干净的方法。目前我有: ... Constructor() { parseDictionary = new Dictionary<typeOfStream, Delegate>() { {typeOfStream.SOME_ENUM_VAL, Delegate.CreateDelegate(typeof(ParseDelegate<string>), this, "MyMethod")},

必须有一个更干净的方法。目前我有:

... Constructor()
{
      parseDictionary = new Dictionary<typeOfStream, Delegate>()
            {
                {typeOfStream.SOME_ENUM_VAL, Delegate.CreateDelegate(typeof(ParseDelegate<string>), this, "MyMethod")},
                {typeOfStream.SOME_OTHER_ENUM_VAL, Delegate.CreateDelegate(typeof(ParseDelegate<XmlNode>), this, "MyOtherMethod")}
            };
}

public bool MyMethod(string some_string)
{
    ...
}

public bool MyOtherMethod(XmlNode some_node)
{
    ...
}
。。。构造函数()
{
parseDictionary=新字典()
{
{typeOfStream.SOME_ENUM_VAL,Delegate.CreateDelegate(typeof(ParseDelegate),这个“MyMethod”)},
{typeOfStream.SOME_OTHER_ENUM_VAL,Delegate.CreateDelegate(typeof(ParseDelegate),这是“MyOtherMethod”)}
};
}
公共bool MyMethod(字符串some\u字符串)
{
...
}
公共bool MyOtherMethod(XmlNode some_node)
{
...
}
我想去掉“MyMethod”和MyOtherMethod,把它改成this.MyMethod和this.MyOtherMethod。选择


我愿意接受任何允许我使用字典查找的解决方案,并将我的数据mojo指向任意方法(一个定义良好的具有任意参数组的方法)进行解析。

只需转换到正确类型的委托:

parseDictionary = new Dictionary<typeOfStream, Delegate>()
{
    { typeOfStream.SOME_ENUM_VAL, (ParseDelegate<string>) MyMethod) },
    { typeOfStream.SOME_OTHER_ENUM_VAL, (ParseDelegate<XmlNode>) MyOtherMethod }
};
parseDictionary=newdictionary()
{
{typeOfStream.SOME_ENUM_VAL,(ParseDelegate)MyMethod},
{typeOfStream.SOME_OTHER_ENUM_VAL,(ParseDelegate)MyOtherMethod}
};

你不是说
?太好了。我不知道你能投给代表。打开了一个充满可能性的全新世界!