私はこのようなコードを持っています:
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
の 3 番目の呼び出しに合わせると、代わりに と表示されます。どうしてこうなった?Main
class Sample.Program.A
(local variable) int A
フレームワーク 4 で Visual Studio 2010 Professional を使用しています。IntelliSense と同じですか?
3行目がすぐに分からない方へF(G<A, B>3);
それはF(
G < A
,
B > 3
);
どこG < A
で bool でありB > 3
、bool であり、その関数がメソッドを呼び出していvoid F(bool a, bool b)
ます。
このコードの目的は教育目的のみであり、それがそのような理由です。しかし、IntelliSense は 3 行目で正しく機能していませんF(G<A, B>3);
。