[这是最佳实践的结果:函数应该返回null还是空对象?但我想要非常一般.]
在很多传统的(嗯...生产)C++代码,我所看到的,有写的倾向大量的NULL(或类似)的检查,以测试指针.在添加NULL时,许多这些都会在发布周期结束时添加 - 检查可以快速解决由指针取消引用导致的崩溃问题 - 而且没有太多时间进行调查.
为了解决这个问题,我开始编写带有(const)引用参数的代码,而不是传递指针的(更多)常见技术.没有指针,没有检查NULL的愿望(忽略实际具有空引用的角落情况).
在C#中,存在相同的C++"问题":希望检查针对null(ArgumentNullException)的每个未知引用并NullReferenceException通过添加null检查来快速修复s .
在我看来,防止这种情况的一种方法是首先使用空对象(String.Empty,EventArgs.Empty)来避免空对象.另一个是抛出异常而不是返回null.
我刚刚开始学习F#,但看起来在那个环境中有更少的空对象.那么也许你真的不需要有很多null参考文献?
我在这里吠叫错了吗?
根据此功能矩阵,Visual Studio 2010 Premium(RC)包括"静态代码分析".
但是,Contract.Requires在我的方法开头添加调用似乎没有任何效果.如果合同被违反,我不会得到运行时异常.如果无法证明合同,我不会收到编译器警告.我也找不到项目设置中的"代码合同"选项卡.
我错过了一些明显的东西,或者这个功能仅在Ultimate版本中可用吗?