c# – 指定引用类型的默认值

据我所知,默认(object)其中’object’是任何引用类型总是返回null,但是我可以指定一个默认值吗?例如,我想要default(object)== new object();
编号默认(类型)将始终返回相同的事物 – 该类型的“零”出版本.对于引用类型,这是一个始终设置为零的对象的句柄,等于null.对于值类型,它始终是所有成员设置为零的结构.

没有办法重写这个行为 – 语言规范是这样设计的.

编辑:关于你的评论:

Just to be able to say FirstOrDefault() and never get a null.

我不会在任何情况下推荐这个.用户期望FirstOrDefault()在失败时返回null.最好编写自己的扩展方法:

static T FirstOrNewInstance<T>(this IEnumerable<T> sequence) where T : class, new()
{
     return sequence.FirstOrDefault() ?? new T();
}
相关文章
相关标签/搜索