120得票3回答
为什么这个字符串扩展方法不会抛出异常?

我有一个 C# 字符串扩展方法,应该返回一个 IEnumerable<int> 的子字符串在字符串中的所有索引。它对于预期的目的完美工作,并返回了预期的结果(由我的一个测试证明,尽管不是下面的那个测试),但另一个单元测试发现了一个问题:它无法处理空参数。 这是我正在测试的扩展方法...

59得票1回答
当传递“null”常量时为什么会出现异常,但传递“null”字符串引用时却不会出现异常?

如果我运行这段代码:Console.WriteLine( String.Format( "{0}", null ) ); 当我运行这段代码时,我会得到一个ArgumentNullException异常:String str = null; Console.WriteLine( String.F...

48得票5回答
如何初始化一个空的IEnumerable<Object>并允许对其进行Concat操作?

我尝试了这段代码来将b添加到books中:IEnumerable&lt;Book&gt; books =null; foreach (Book b in context.Books.AsEnumerable()) if (someConditions) books = b...

21得票16回答
有没有任何理由抛出DivideByZeroException?

有没有一些情况下,抛出可以避免的错误是一个好主意呢? 我特别考虑了 DivideByZeroException 和 ArgumentNullException。 例如: double numerator = 10; double denominator = getDenominator(...

11得票4回答
在C#中,是否应该检查传递给方法的引用是否为null?

几个月前,我问过一个关于C和C ++的类似问题,但最近由于整个“Windows Phone”事情,我更加关注C#。 那么,在C#中,方法边界应该检查NULL吗?我认为这与C和C ++不同,因为在C#中,人们通常可以确定给定引用是否有效--编译器将防止将未初始化的引用传递到任何地方,因此唯一剩...

8得票7回答
如果我打算立即使用参数,那么我应该检查参数是否为空吗?

我已经习惯了检查方法参数是否为空(然后抛出异常),以至于我几乎不再考虑它。 如果参数是引用类型,那么它就在这里: if(arg == null) throw new ArgumentNullException(nameof(arg)); 如果我立即使用参数,那么该怎么办?我是否需...

8得票2回答
更改帧时出现参数为空异常

我正在尝试在Windows 8应用程序中更改框架。我尝试按照这个页面上的教程进行操作,但是我一直收到相同的错误提示。 在这一行代码中,我收到了ArgumentNullException错误: frameState[_pageKey] = pageState; 在LayoutAwareP...

8得票3回答
如何在不使用模拟的情况下对使用UpdateModel的操作进行单元测试?

我一直在阅读Scott Guthrie的ASP.NET MVC Beta 1,其中展示了对UpdateModel方法的改进以及它们如何提高单元测试效率。我已经创建了一个类似的项目,但是每当运行包含对UpdateModel调用的UnitTest时,都会收到一个ArgumentNullExcept...

8得票2回答
缺少参数名的ArgumentNullException消息

我在我的C#代码的一部分中使用ArgumentNullException。我想要捕获和显示异常消息,但不包括参数名称。我想将参数名称传递给异常构造函数。 throw new ArgumentNullException("myParameter", errorMessageStringVari...