默认(int?)与(int?)null之间的区别

本文关键字:int 区别 之间 null 默认 | 更新日期: 2023-09-27 18:16:17

使用default(int?)(int?)null分配变量有什么区别吗?

是一样的吗?

或者存在一些优缺点来使用每种方式?

默认(int?)与(int?)null之间的区别

它们和new int?()是完全一样的。

如果你只是赋值一个变量,通常你根本不需要它。我只用:
int? x = null;
例如

我最经常需要这些表达式之一的时候是条件运算符,例如

int y = ...;
int? z = condition ? default(int?) : y;

在这种情况下不能使用null,因为编译器不能推断表达式的类型。(请注意,这可能是对语言的一个有用的补充……)

两者基本相同。Default给出默认值。对于引用类型和可空类型,它给出null;对于值类型,它给出0。如果你声明integer为空,你也可以把它赋值给(int?)null。你也可以检查IL代码来验证。