-1

我有这样的代码:

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);

4

1 回答 1

-1

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

于 2012-07-26T03:31:15.263 回答