我有这样的代码:
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
是bool而B > 3
也是bool,而该函数正在调用void F(bool a, bool b)
方法。
此代码的目的仅用于教育目的,这就是为什么它是这样的。但是IntelliSense在第三行F(G<A, B>3);
处无法正常工作。
答案 0 :(得分:-1)
好的,T1,T2本身就是一个类型名称,所以它绝对不是一个变量,因此IntelliSense功能正常工作。