【发布时间】:2019-09-30 07:54:14
【问题描述】:
基于this question,当这段代码编译并运行时,我(以及上述问题中的 OP)感到困惑:
DateTime dateTime = new DateTime();
bool isFalse = dateTime == null;
bool isTrue = dateTime != null;
注意dateTime 变量不是nullable。当我将鼠标悬停在等号上时,它告诉我它的签名是 bool DateTime.operator==(DateTime dateTime1, DateTime dateTime2) 而 null 是 Nullable<DateTime>。
编译器在这里做什么?是否使用某种隐式转换?
我发现了类似的问题here,但它只是对问题不以为然,并没有解释编译器为什么这样做。
【问题讨论】:
标签: .net datetime compilation