假设我有一个带有2个签名的方法:
void Foo(int a);
void Foo(long a, string s = null);
如果我这样调用Foo
:
Foo(1);
它似乎是两个中的第一个。是因为默认情况下直接作为参数传递的数字被视为int32吗?这是指定的位置?
答案 0 :(得分:6)
C#5.0规范的第2.4.4.2节(整数文字)说明:
整数文字的类型确定如下:
因此,第一个项目符号适用于您的案例,因为您没有后缀,1
符合列表中的第一项int
,因此整数文字1
属于输入int
。
答案 1 :(得分:3)