Q
意外的行为()
4
A
回答
10
它的工作,因为它选择这个过载:
public static String Format(IFormatProvider provider, String format, params Object[] args) { ... }
一个null
供应正常,且无参数的可变参数也行,所以它只是打印出的字符串。
直观地说,我们可能会认为此重载:
public static String Format(String format, Object arg0) { ... }
当然,如果它做选择,我们会得到一个ArgumentNullException
。
2
它可能会将请求解释为对String.Format(IFormatProvider提供程序,字符串格式,params对象[] args)的调用,并将空值作为提供程序和参数,但将“Hello”作为格式进行覆盖。返回“你好”。
如果你想要一个空的结果使用String.Empty
4
它选择超载
public static string Format(IFormatProvider provider, string format, params object[] args)
,因为你的第二个参数有string
型(无需转换)。因此,该过载更接近,比具有两个参数的过载(它需要从string
到object
转换):
String.Format(null, 5);
在这种情况下转换为一个对象是:
public static string Format(string format, object arg0)
可以通过调用看到差异选择,你有一个例外(实际上没有在int
和string
之间的隐式转换)。
您可以在msdn上选择best function member了解更多信息。
相关问题
- 1. 意外的行为
- 2. 意外的行为()
- 3. 意外行为
- 4. 意外行为
- 5. 意外行为
- 6. 意外行为()
- 7. 意外行为
- 8. 意外行为
- 9. 意外行为
- 10. 意外行为
- 11. 意外行为
- 12. 意外行为
- 13. 意外行为
- 14. 意外行为
- 15. 意外pyparsing行为
- 16. 意外in_array()行为
- 17. WC_LISTVIEW意外行为
- 18. dynamic_pointer_cast意外行为
- 19. Cufon.refresh意外行为
- 20. 意外pandas.Series.replace()行为
- 21. 意外行为list.append
- 22. $ watchGroup意外行为
- 23. 意外行为:左
- 24. 意外行为ThreadPool.QueueUserWorkItem
- 25. 意外行为NSMutableOrderedSet
- 26. 意外Class.getMethod行为
- 27. numpy.bitwise_and.reduce行为意外?
- 28. SimpleInjector意外行为
- 29. Memcpy意外行为
- 30. 意外行为Mongoid