给定以下代码,我会期望一个空结果或异常:
String.Format(null, "Hello")
Run Code Online (Sandbox Code Playgroud)
相反,结果是字符串"Hello".为什么是这样?
Kir*_*oll 10
它正在工作,因为它选择了这个重载:
public static String Format( IFormatProvider provider, String format, params Object[] args) { ... }
Run Code Online (Sandbox Code Playgroud)
一个null供应商是确定的,没有参数的可变参数也行,所以它只是打印出的字符串.
直觉上,我们可能已经预料到这种过载:
public static String Format(String format, Object arg0) { ... }
Run Code Online (Sandbox Code Playgroud)
当然,如果它确实选择了那个,我们就会得到一个ArgumentNullException.
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |