这对我来说似乎很奇怪,但我记得有一个线程,Eric Lippert在其中评论了C#无法根据返回类型重载方法的能力(至少是约定俗成),因此也许它与此有某种复杂的关系。
这个为什么不起作用呢?
但是这个可以:
这个为什么不起作用呢?
public static T Test<T>() where T : new()
{
return new T();
}
// Elsewhere
SomeObject myObj = Test();
但是这个可以:
var myObj = Test<SomeObject>();
从某个角度看,它们都可以,因为你没有重复自己(在非常小的程度上),但这只是编译器的不同处理方式吗?