比方說,我有2個簽名的方法:重載了不同數量的數據類型
void Foo(int a);
void Foo(long a, string s = null);
如果我調用Foo
這樣的:
Foo(1);
好像叫的第一個二。是否因爲直接作爲參數傳遞的數字默認被視爲int32?這在哪裏指定?
比方說,我有2個簽名的方法:重載了不同數量的數據類型
void Foo(int a);
void Foo(long a, string s = null);
如果我調用Foo
這樣的:
Foo(1);
好像叫的第一個二。是否因爲直接作爲參數傳遞的數字默認被視爲int32?這在哪裏指定?
2.4.4.2節(整數常量)的C#5.0規格的規定:
類型文字被確定爲一個整數的如下:
所以第一子彈適用於你的情況,你有沒有後綴,並1
適合在列表中,int
的第一個項目,所以文字1
的整數int
類型。
字面值'1' _is_ int。 – stuartd
int32爲默認值 –