[英]Generic call of overloaded methods
在尝试调用重载方法时,我遇到了 C# generics 的问题。 如果您能帮助我,我将不胜感激。
我打电话给Example.test()
public class Example
{
private String printObject(Object o)
{
//this is the one that is called
}
private String printObject(String o)
{
//this is the one I expect to be called
}
private void callPrint<T>(Object o)
{
if (o is T)
{
T tmp;
tmp = (T)o;
data = _printObject(tmp);
}
}
public String foo(Object o)
{
callPrint<String>(o);
}
public static void test()
{
String test="Test";
foo(test);
}
}
好吧,必须为所有类型确定一次。 您的String printObject(String o)
仅在T
是字符串时才有效 - 否则无效,因此编译器无法将泛型方法绑定到此静态类型方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.