Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#默认关键字与默认成员_C#_.net - Fatal编程技术网

C#默认关键字与默认成员

C#默认关键字与默认成员,c#,.net,C#,.net,当结构类型提供的默认成员与C#Default关键字提供的值相等时,两者之间有区别吗?如果没有区别,是否有理由选择其中一个 例如: System.Reactive.Unit.Default 对 default(System.Reactive.Unit) 你知道这是什么吗?它返回给定类型的默认值。对于类之类的引用类型,这总是null 是一个结构,因此它的值类型永远不为null。在这种情况下,default返回“通过将所有值类型字段设置为其默认值,并将所有引用类型字段设置为null而产生的值” 因

当结构类型提供的默认成员与C#Default关键字提供的值相等时,两者之间有区别吗?如果没有区别,是否有理由选择其中一个

例如:

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;}}

但这更多是出于偶然。如果不知道运算符或表达式的作用,请先阅读文档。否则,您无法决定需要什么。

我要特别询问的是值相等的结构。如果默认成员不是等价的,那么它存在的理由显而易见。因为它们是等价的,所以没有明显的理由存在默认成员。这是严格意义上的风格问题,还是在值类型上有支持或反对默认成员的理由?我特别想问的是关于值等价的结构。如果默认成员不是等价的,那么它存在的理由显而易见。因为它们是等价的,所以没有明显的理由存在默认成员。这是严格意义上的风格问题,还是有理由支持或反对值类型上的默认成员?