此代码是Shopify Sync实用程序的一部分。从来没有失败过,直到我们在CompareTo Shopify字段中遇到没有价值的产品,而不是我们拥有没有CompareTo价值的产品。
private Decimal? GetComparePrice(long? productId, long? variantId, List<Product> products)
{
var product = products.Where(x => x.Id == productId).FirstOrDefault();
var variantData = product.Variants.Where(x => x.Id == variantId).FirstOrDefault();
return variantData != null ? variantData.CompareAtPrice : null;
}
如果null
的值为CompareTo
,如何使我的函数返回null
?
答案 0 :(得分:3)
尝试在有可能成为null
的属性上使用?. null-conditional operators。
这里是方法的修改版本,当 product , variant 或 CompareAtPrice <时,返回null
,而不引发异常/ em>是null
:
private decimal? GetComparePrice(long? productId, long? variantId, List<Product> products)
{
var product = products.FirstOrDefault(p => p.Id == productId);
var variant = product?.Variants?.FirstOrDefault(v => v.Id == variantId);
return variant?.CompareAtPrice;
}