最初の例では、を押してFormat(String, Object)
います。これは、分解すると次のようになります。
public static string Format(string format, object arg0)
{
return Format(null, format, new object[] { arg0 });
}
new object[]
その周りに注意してください。
2つ目は、明らかにFormat(string, object[])
使用法に達していることです。少なくとも、同じテストを実行したときに呼び出されるものです。分解すると、次のようになります。
public static string Format(string format, params object[] args)
{
return Format(null, format, args);
}
したがって、これらはすべて実際にに集中しFormat(IFormatProvider, string, object[])
ます。かっこいい、最初の数行を見てみましょう。
public static string Format(IFormatProvider provider, string format, params object[] args)
{
if ((format == null) || (args == null))
{
throw new ArgumentNullException((format == null) ? "format" : "args");
}
...
}
...ウェルプ、あなたの問題があります、すぐそこに!最初の呼び出しはそれを新しい配列でラップしているので、nullではありません。Format()
nullを明示的に渡しても、その呼び出しの特定のインスタンスのため、それは行われません。