我有一个简单的代码块,它调用WCF服务API(GetActiveDevicesByDetailId),它提供一个数组作为响应。因为,我没有在客户端定义正确的类对象来接收响应,使用 var 数据类型并获取响应的属性/成员(CustomerID)。 API返回单个实体数组,我们将其用于客户端处理。因为,API只返回单个元素am获取值,如下所述。此外,要处理null(理想情况下它不应该返回null),我正在检查并返回null,如果它。
当返回null时,此语句 vm [0] .CustomerId.HasValue 是否返回异常?我检查了这段代码的简单可空整数。但是这个陈述对于数组有什么作用?
var vm = client.GetActiveDevicesByDetailId(DetailID);
if (vm[0].CustomerId.HasValue)
return vm[0].CustomerId.Value;
else
return null;
使用GetValueorDefault()。
var vm = client.GetActiveDevicesByDetailId(DetailID);
if (vm[0] != null)
return vm[0].CustomerId.GetValueOrDefault();
else
return null;
对此有何意见?
答案 0 :(得分:1)
声明:
vm[0].CustomerId.HasValue
不应返回提供的异常,即vm [0]不为空。您应该在检查CustomerId值之前检查这一点。
有足够的资源来解释数组的工作方式(例如Arrays C#),所以我不打算在这里解释。