Convert.ToInt32(nullableVariable) 与 nullableVariable.GetValueOrDefault()

Convert.ToInt32(nullableVariable) VS nullableVariable.GetValueOrDefault()

其中哪些是最佳做法,它们是如何工作的?

int? id = null;
Console.WriteLine(id.GetValueOrDefault());
Console.WriteLine(Convert.ToInt32(id));    

这里两个return相同的值为0.

取决于Microsoft

第一个表达式:

GetValueOrDefault()

检索当前 Nullable<T> 对象的值或基础类型的默认值。

Returns Value 属性 的值如果HasValue 属性 是true; 否则,底层类型的默认值。

第二个表达式:

Nullable types (int? id = null;)

可空类型是表示基础值类型 T 和附加 null 值的所有值的类型。