代码之家  ›  专栏  ›  技术社区  ›  Egor Pavlikhin

指定引用类型的默认值

c#
  •  18
  • Egor Pavlikhin  · 技术社区  · 15 年前

    2 回复  |  直到 12 年前
        1
  •  30
  •   Matthew Strawbridge    12 年前

    不。 default(type) 将始终返回相同的内容-该类型的“零输出”版本。对于引用类型,这是一个对象的句柄,该对象的值始终设置为零,等于 null . 对于值类型,这始终是所有成员都设置为零的结构。


    编辑:关于您的评论:

    只是想说 FirstOrDefault() 永远不要得到空值。

    第一个默认值() 返回 无效的 失败时。最好编写自己的扩展方法:

    static T FirstOrNewInstance<T>(this IEnumerable<T> sequence) where T : class, new()
    {
         return sequence.FirstOrDefault() ?? new T();
    } 
    
        2
  •  7
  •   Thomas Levesque    15 年前

    但不管怎样,答案是“不,你不能”