为变量分配一个可能为null的属性,而不必访问属性两次

时间:2014-08-13 07:47:56

标签: c# null

我正在为属性赋值属性但是属性值可能为null,我需要适应这个,目前我按以下方式处理:

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

有没有办法执行相同的操作而无需两次调用对象?感谢

2 个答案:

答案 0 :(得分:3)

您可以使用nullable int

int? position = record.Number;

然后在您需要使用它时检查position == nullposition.HasValue ..

答案 1 :(得分:3)

如果position有默认值,您可以使用null-coalescing运算符或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);