当结构类型提供的默认成员等同于C# Default关键字提供的值时,两者之间有区别吗?如果没有区别,有理由更喜欢其中一个吗?
例如:
System.Reactive.Unit.Default对比
default(System.Reactive.Unit)发布于 2018-07-03 00:00:24
你知道default是做什么的吗?它返回给定类型的默认值。对于类这样的引用类型,这个值始终是null。
System.Reactive.Unit是一个struct,因此它是一个从不为null的值类型。在这种情况下,default返回“将所有值类型字段设置为默认值并将所有引用类型字段设置为null__所产生的值”。
所以,是的,在这种情况下,它与Default属性返回的内容相同,因为无参数构造函数执行的是相同的操作:
static readonly Unit _default = new Unit();
/// <summary>
/// Gets the single unit value.
/// </summary>
public static Unit Default { get { return _default; } }但这更多的是出于偶然。如果您不知道运算符或表达式的作用,请先阅读文档。否则你不能决定你需要什么。
https://stackoverflow.com/questions/51139811
复制相似问题