【发布时间】:2011-03-23 03:46:09
【问题描述】:
我正在查看 this article 并且正在努力遵循解释提升运算符的 VB.NET 示例。似乎没有等效的 C# 示例或教程。一般来说,我在运算符重载方面没有太多经验,因此在阅读可空类型的同时尝试与 VB.NET 等价物达成协议可能不是最好的起点......
谁能解释提升的运算符以及可空类型如何使用它们?这是否意味着可空类型本身不会重载运算符,而是会使用它所代表的底层类型中的运算符?
似乎没有太多关于提升运算符的 SO 信息,因此希望这也可以帮助其他一些人。
【问题讨论】:
-
啊.. 以为 (null >> 1) 无效,想知道为什么会这样?似乎在 (int? x = null;(x >> 1) ?? -1;) 的第二个语句中对 x 进行操作。认为 ??将其“转换”为有效形式 ((x == null) ? -1: (x >> 1);)。原来它是在 (x >> 1) 上运行的,并且 (null >> 1) 是有效的。
标签: c# .net nullable lifted-operators