Tag: argumentnullexception

为什么在传递“null”常量时会得到一个exception,而在传递“null”string时则不会呢?

如果我运行这个代码: Console.WriteLine( String.Format( "{0}", null ) ); 我得到一个ArgumentNullException但如果我运行此代码: String str = null; Console.WriteLine( String.Format( "{0}", str ) ); 它运行得很好,输出是一个空string。 现在这两块看起来相当于我 – 他们都通过一个空引用到String.Format()但行为是不同的。 不同的行为如何在这里可能?

为什么这个string扩展方法不会抛出exception?

我有一个C#string扩展方法,它应该返回一个string中子string的所有索引的IEnumerable<int> 。 它完美的预期目的和预期的结果返回(如我的一个testing,虽然不是下面的一个certificate),但另一个unit testing发现它的问题:它不能处理空参数。 这是我testing的扩展方法: public static IEnumerable<int> AllIndexesOf(this string str, string searchText) { if (searchText == null) { throw new ArgumentNullException("searchText"); } for (int index = 0; ; index += searchText.Length) { index = str.IndexOf(searchText, index); if (index == -1) break; yield return index; } } 这是标记问题的testing: [TestMethod] [ExpectedException(typeof(ArgumentNullException))] public void Extensions_AllIndexesOf_HandlesNullArguments() { string […]