[这是一个最佳实践:函数应该返回null还是一个空对象的结果?,但我试图非常通用。]
在我看过的许多传统(嗯...生产)C ++代码中,有一种倾向于编写很多NULL(或类似的)检查来测试指针。其中许多是在发布周期的最后阶段添加的,当添加NULL 检查提供了快速修复由指针解引用引起的崩溃时--并且没有足够的时间进行调查。
为了解决这个问题,我开始编写使用(const
) 引用参数而不是更常见的传递指针的技术的代码。没有指针,也就没有必要检查NULL(忽略实际上有一个空引用的极端情况)。
在 C# 中,同样存在与 C++ 相同的“问题”:希望检查每个未知引用是否为null
(ArgumentNullException
),并通过添加null
检查来快速修复NullReferenceException
。
对我来说,避免这种情况的一种方法是使用空对象(String.Empty
, EventArgs.Empty
)。另一种方法是抛出异常而不是返回null
。
我刚开始学习 F#,但似乎在那个环境中很少有null对象。所以也许你真的没有许多null
引用浮动?
我在这里走错方向了吗?