我有这样的代码:
void F(bool a, bool b) { }
void F(int a) { }
int G<T1, T2>(int a) { return 1; }
class A { }
class B { }
void Main(string[] args)
{
int G = 1;
int A = 1;
int B = 1;
F(G<A, B>(7)); // call F(int a)
F(G<A, B>(7 / 3)); // call F(int a)
F(G<A, B>3); // call F(bool a, bool b)
}
但是当我将鼠标放在函数A的第三个调用上时Main,它说它class Sample.Program.A不是(local variable) int A. 为什么会这样?

我在框架 4 中使用 Visual Studio 2010 Professional。您的 IntelliSense 是否相同?
对于那些没有立即理解第三行的人F(G<A, B>3);
这是F( G < A , B > 3 );
哪里G < A是 boolB > 3也是 bool 并且该函数正在调用该void F(bool a, bool b)方法。
此代码的目的仅用于教育目的,这就是它的原因。但 IntelliSense 在第三行无法正常工作F(G<A, B>3);。