具有null格式的String.Format

JKJ*_*KJK 4 c# null string.format

谁能解释为什么会发生以下情况:

String.Format(null, "foo") // Returns foo
String.Format((string)null, "foo") // Throws ArgumentNullException:
                                   // Value cannot be null. 
                                   // Parameter name: format
Run Code Online (Sandbox Code Playgroud)

谢谢.

Nix*_*Nix 10

它称之为不同的超载.

string.Format(null, "");  
//calls 
public static string Format(IFormatProvider provider, string format, params object[] args);
Run Code Online (Sandbox Code Playgroud)

MSDN方法链接描述如上.

string.Format((string)null, "");
//Calls (and this one throws ArgumentException)
public static string Format(string format, object arg0);
Run Code Online (Sandbox Code Playgroud)

MSDN方法链接描述如上.