[英]Improve if condition logic
我想改進我的代碼邏輯。 我在邏輯中有太多的 If 條件。 我想知道是否有更好的方法來執行此邏輯。 這是代碼
if (item != null && item.Fields != null && item.Fields["WilcardPage"] != null) {
wildCardItemUrl = item.Fields["WilcardPage"].Value;
}
if (string.IsNullOrEmpty(wildCardItemUrl)) {
if (item.Children.Count == 1) {
wildCardItemUrl = Sitecore.Links.LinkManager.GetItemUrl(item);
} else {
var settings = Sitecore.Context.Database.GetItem(ID.Parse(settingsItem));
if (settings != null) {
var wildcardItem = _workContext.SitecoreContext.Cast < SiteSettings > (settings);
wildCardItemUrl = (wildcardItem.ItemWildcardPage != null) ? MediaReleaseHelper.FixMediaReleaseUrl(wildcardItem.ItemWildcardPage.ItemUrl) : string.Empty;
}
}
}
老實說,這里沒有太多需要改進的地方,但試試這個:
wildCardItemUrl = item?.Fields?["WilcardPage"]?.Value ?? wildCardItemUrl;
if (string.IsNullOrEmpty(wildCardItemUrl)) {
if (item?.Children.Count == 1) {
wildCardItemUrl = Sitecore.Links.LinkManager.GetItemUrl(item);
} else {
var settings = Sitecore.Context.Database.GetItem(ID.Parse(settingsItem));
if (settings != null) {
var wildcardItem = _workContext.SitecoreContext.Cast<SiteSettings> (settings);
wildCardItemUrl = (wildcardItem.ItemWildcardPage != null) ? MediaReleaseHelper.FixMediaReleaseUrl(wildcardItem.ItemWildcardPage.ItemUrl) : string.Empty;
}
}
}
如果:
Fields["..."]
從不拋出和wildCardItemUrl
在if
之前是 null那么您可以將 if 替換為:
wildCardItemUrl = item?.Fields?["WilcardPage"]?.Value;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.