我有这样的代码:
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);
。