【问题标题】:not exact "7.13 The null coalescing operator" in C# 4.0 spec不准确 C# 4.0 规范中的“7.13 空合并运算符”
【发布时间】:2013-08-05 22:13:07
【问题描述】:

在 C# 4.0 规范的“7.13 空合并运算符”中,它说

否则,如果 b 的类型为 B,并且存在 从 a 到 B 的隐式转换,则结果类型为 B。

据我了解,应该是从 A0 到 B(如果 A 是可空类型,则 A0 是 A 的基础类型,否则是 A)。

int? a=null;
long b=5;

那么a??b 的类型为long,因为存在从int(即A0)到long 的隐式转换。

请帮忙确认一下我的观点是否正确。

【问题讨论】:

  • 您对此有何疑问?
  • 只是请求帮助以确认我的观点是否正确。
  • 你是说你认为这里的规范有错误吗?阅读整个部分(不仅仅是您粘贴的行)我不这么认为,这对我来说似乎是正确的。
  • 没有从 int 隐式转换?长。但存在从 int 到 long 的一个。我在 C#3.0 中发现它是“从 A0 到 B”。这可能是 C#4.0 中的一个错字

标签: c#


【解决方案1】:

在 C#3.0 中它说:

否则,如果存在从 A0 到 B 的隐式转换,则结果 类型是 B。

在我的猜测中,这可能是 C#4.0 中的一个错字。

【讨论】:

    猜你喜欢
    • 2011-02-13
    • 2012-09-23
    • 2011-11-08
    • 2011-03-26
    • 2018-12-12
    • 1970-01-01
    • 2012-09-19
    • 2013-09-13
    • 2014-02-07
    相关资源
    最近更新 更多