C#默认关键字与默认成员
当结构类型提供的默认成员与C#Default关键字提供的值相等时,两者之间有区别吗?如果没有区别,是否有理由选择其中一个 例如:C#默认关键字与默认成员,c#,.net,C#,.net,当结构类型提供的默认成员与C#Default关键字提供的值相等时,两者之间有区别吗?如果没有区别,是否有理由选择其中一个 例如: System.Reactive.Unit.Default 对 default(System.Reactive.Unit) 你知道这是什么吗?它返回给定类型的默认值。对于类之类的引用类型,这总是null 是一个结构,因此它的值类型永远不为null。在这种情况下,default返回“通过将所有值类型字段设置为其默认值,并将所有引用类型字段设置为null而产生的值” 因
System.Reactive.Unit.Default
对
default(System.Reactive.Unit)
你知道这是什么吗?它返回给定类型的默认值。对于类之类的引用类型,这总是null
是一个结构
,因此它的值类型永远不为null
。在这种情况下,default
返回“通过将所有值类型字段设置为其默认值,并将所有引用类型字段设置为null
而产生的值”
因此,是的,在这种情况下,它与Default
属性返回的内容相同,因为无参数构造函数执行相同的操作:
static readonly Unit _default = new Unit();
/// <summary>
/// Gets the single unit value.
/// </summary>
public static Unit Default { get { return _default; } }
static readonly Unit _default=new Unit();
///
///获取单个单位值。
///
公共静态单元默认值{get{return\u Default;}}
但这更多是出于偶然。如果不知道运算符或表达式的作用,请先阅读文档。否则你就无法决定你需要什么。你知道什么是需要的吗?它返回给定类型的默认值。对于类之类的引用类型,这总是null
是一个结构
,因此它的值类型永远不为null
。在这种情况下,default
返回“通过将所有值类型字段设置为其默认值,并将所有引用类型字段设置为null
而产生的值”
因此,是的,在这种情况下,它与Default
属性返回的内容相同,因为无参数构造函数执行相同的操作:
static readonly Unit _default = new Unit();
/// <summary>
/// Gets the single unit value.
/// </summary>
public static Unit Default { get { return _default; } }
static readonly Unit _default=new Unit();
///
///获取单个单位值。
///
公共静态单元默认值{get{return\u Default;}}
但这更多是出于偶然。如果不知道运算符或表达式的作用,请先阅读文档。否则,您无法决定需要什么。我要特别询问的是值相等的结构。如果默认成员不是等价的,那么它存在的理由显而易见。因为它们是等价的,所以没有明显的理由存在默认成员。这是严格意义上的风格问题,还是在值类型上有支持或反对默认成员的理由?我特别想问的是关于值等价的结构。如果默认成员不是等价的,那么它存在的理由显而易见。因为它们是等价的,所以没有明显的理由存在默认成员。这是严格意义上的风格问题,还是有理由支持或反对值类型上的默认成员?