【发布时间】:2013-01-28 04:54:53
【问题描述】:
这是一个简单的代码:
static class Example
{
static int DoIt(object o) { return 0; }
class A { }
static int DoIt(A a) { return 1; }
static int CallDoIt<X>(X x) { return DoIt(x); }
static void Main()
{
var a = new A();
System.Console.WriteLine(DoIt(a)); // returns 1 (as desired)
System.Console.WriteLine(CallDoIt(a)); // returns 0
}
}
结果看起来很奇怪:直接调用的函数 DoIt() 与从另一个函数调用的情况下返回的值不同。这是 C# 中的预期行为吗?如果是,如何实现所需的行为(最好没有反射)?
【问题讨论】:
标签: c#