2010-10-21 55 views
4

任何人都可以解釋爲什麼會出現以下情況:的String.Format與空格式

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

感謝。

回答

10

它調用不同的過載。

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

MSDN Method Link如上所述。

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

MSDN Method Link如上所述。

+0

我想我們應該拋出一個提醒,拿起一個RedGate反射器的副本,這樣看起來更容易。 ;) – jcolebrand 2010-10-21 14:35:25

+1

嗯...我寧願去看看MSDN文檔,而不是深入這種信息的反射器。或者我在某個地方錯過了一個笑話(是的,通常反射器是好的,每個人都應該擁有它)。 – Chris 2010-10-21 14:40:06

+1

你的意思是Lutz Roeder's Reflector? (我還沒有接受售完) – 2010-10-21 14:41:43

相關問題