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}
};
你不是说
?太好了。我不知道你能投给代表。打开了一个充满可能性的全新世界!