检查和处理空返回值的正确方法是什么?

Den*_*ail 2 c#

我有一些方法返回一个值(或对象),如果一切按计划进行,否则返回null(出错).

例如,DataTable dt = DoSomething(); 如果事情在炸毁DoSomething()的返回值将nulldt将被设置为null.

在其他情况下,我正在测试一个值,然后如果测试值不为null,则将变量设置为该值.这感觉不对.我两次调用相同的方法.

例如,if(String.IsNullOrEmpty(getAddresss())){Do Stuff;}如果我在测试之前声明了一个变量,代码可能会在设置时爆炸.如果我测试,那么设置它似乎我复制工作.

测试和处理空值的首选方法是什么?

Jon*_*Jon 6

从您的方法中抛出异常而不是让它们返回null.

无论你在返回代码和异常之间的几乎宗教争论中的立场如何,.NET都建立在通过抛出异常来报告错误的前提下.如果没有别的因为这会对其他人造成不熟悉的话,那么遵循与代码的其他框架分离的做法是非常不明智的.