作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
Martin Fowler 的重构讨论了创建 Null 对象以避免大量
if (myObject == null)
测试。这样做的正确方法是什么?我的尝试违反了“构造函数中的虚拟成员调用”规则。这是我的尝试:
public class Animal
{
public virtual string Name { get; set; }
public virtual string Species { get; set; }
public virtual bool IsNull
{
get { return false; }
}
}
public sealed class NullAnimal : Animal
{
public override string Name
{
get{ return "NULL"; }
set { }
}
public override string Species
{
get { return "NULL"; }
set { }
}
public virtual bool IsNull
{
get { return true; }
}
}
最佳答案
查看 DbNull 等有趣概念所造成的痛苦程度,并考虑这是否真的是个好主意。
提示:如果您经常检查空引用,您可能应该重新考虑一下 API,以帮助排除靠近堆栈顶部的空对象。
Protip II:当出现意外的 null 时抛出异常实际上很好而且花花公子。如果在不应该为 null 的地方有 null,事情应该会很顺利。
关于c# - 如何在 C# 中创建空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1178399/
我是一名优秀的程序员,十分优秀!