将可能为null的属性赋值给变量,而无需两次访问属性

本文关键字:属性 访问 两次 变量 null 赋值 | 更新日期: 2023-09-27 18:17:41

我正在分配一个属性值给一个属性,但是属性值可能是空的,我需要适应这一点,目前我以以下方式处理:

int position;
if (record.Number != null) position = record.Number;

是否有一种方法可以执行相同的操作而不必调用对象两次?由于

将可能为null的属性赋值给变量,而无需两次访问属性

如果position有默认值,则可以使用空合并运算符或Nullable<T>.GetValueOrDefault

int position = record.Number ?? defaultValue;
//or
int position = record.Number.GetValueOrDefault(defaultValue);

否则,如果position已经具有值,则可以使用position作为右侧操作数,使其保持原来的方式。

int position = record.Number ?? position;
//or
int position = record.Number.GetValueOrDefault(position);

可以使用可空的int

int? position = record.Number;

然后检查position == nullposition.HasValue当你需要使用它的值…