nullable == null 和 nullable.hasvalue 之间有什么区别(如果有的话)

whats the difference (if any) between nullable == null and nullable.hasvalue

说我有

int? x = SomeFunc();

我养成了说

的习惯
if(x != null && x.HasValue)
{
   // do somethign with x.Value;
}

但是一个代码分析工具给我打了个耳光,说这两个条件是一样的。我看了看,实际上他们是

即如果

int? x = null;
x==Null; // true
x.HasValue // false

那么为什么要用两种方法测试同一件事呢?我遗漏了细微的差别吗?

这两者没有区别。 这只是约定俗成的问题。

只挑一个(你喜欢的)坚持下去。