我有以下的C#类:
public class MyType<T>
{
public void TryParse(string p_value)
{
T value ;
Parser.TryParse(p_value, out value);
// Do something with value
}
}
关键是根据泛型类型T调用正确的Parser.TryParse方法。
这使用以下静态类:
static public class Parser
{
static public void TryParse(string p_intput, out object p_output)
{
// Do something and return the right value
}
static public void TryParse(string p_intput, out double p_output)
{
// Do something and return the right value
}
static public void TryParse(string p_intput, out int p_output)
{
// Do something and return the right value
}
}
我原本以为这会起作用:在最坏的情况下,“对象”TryParse将被调用。但是,我遇到了两个编译错误:
- CS1502:'Parser.TryParse(string, out object)' 的最佳重载方法匹配具有一些无效的参数
- CS1503:第2个参数:“out T”无法转换为“out object”
MyType<T>.TryParse
根据T的类型调用正确的Parser.TryParse
)?
注意
问题已编辑以反映原始问题意图(如标题中所写:如何将C#泛型方法调用分派到专门的方法调用中)