[英]Check whether the method is returning a value or null and based on that assign the value
我有一个场景,我通过以下方式为 class 属性赋值。
var appResponse = GetAppResponse();
appResponse.LogoImage = GetAppImage(appId);
这里的问题是有时 GetImage(appId) 返回 null,在这种情况下,我不想将 null 值分配给 appResponse.LogoImage,只有当 GetImage(appId) 返回一个值时,我才想分配该值。
我可以使用 If 条件检查 GetImage(appId) 是否返回 null 然后分配值,但是我将对 GetImage() 方法进行 2 次调用,我觉得这不是一个好方法。
在一行中,我可以检查 null 并且当它不是 null 时,然后仅将值分配给 appResponse.LogoImage?
我可以使用 If 条件检查 GetImage(appId) 是否返回 null 然后分配值,但随后我将对 GetImage() 方法进行 2 次调用
你为什么要叫它两次?
这里只是一个电话:
var appResponse = GetAppResponse();
var appImage = GetAppImage(appId);
if (appImage != null) {
appResponse.LogoImage = appImage;
}
您可以使用空合并运算符: ??
appResponse.LogoImage = GetAppImage(appId) ?? appResponse.LogoImage;
从文档:
空合并运算符
??
如果不是 null,则返回其左侧操作数的值; 否则,它计算右手操作数并返回其结果。??
如果左侧操作数的计算结果为非空,则运算符不会计算其右侧操作数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.