奇怪的智能感知与通用方法

时间:2012-07-26 02:45:55

标签: c# visual-studio-2010 intellisense

我有这样的代码:

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。为什么会这样?

enter image description here

我在框架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);处无法正常工作。

1 个答案:

答案 0 :(得分:-1)

好的,T1,T2本身就是一个类型名称,所以它绝对不是一个变量,因此IntelliSense功能正常工作。