如何简化 IF ELSE 语句 C#?

if(currency.equal("CND"))

       if (string.IsNullOrEmpty(member.LastName))

                    {

                        return $"{member.FirstName}".Trim();

                    }

                    else

                    {

                        return $"{member.LastName} {member.FirstName}".Trim();

                    }


                else

                    if (string.IsNullOrEmpty(member.LastName))

                    {

                        return $"{member.FirstName}".Trim();

                    }

                    else

                    {

                        return $"{member.FirstName} {member.LastName}".Trim();

                    }

我需要简化这个更短的陈述,但我不确定如何?我是新手,在这些东西我可能需要一些帮助.任何建议?


沧海一幻觉
浏览 141回答 3
3回答

开满天机

这并不一定简化了它,它只是使它成为一个单行return $"{(!member.LastName.IsNullOrEmpty() ? member.LastName : "")}{member.FirstName}".Trim();但是,为了更好的清晰度和可读性,该块是完全可以的...if/else        if (string.IsNullOrEmpty(member.LastName))        {            return $"{member.FirstName}".Trim();        }        else        {            return $"{member.LastName} {member.FirstName}".Trim();        }我肯定更喜欢块而不是使用单行字符串插值if...else

蓝山帝景

您可以移动一些代码以删除重复项。如果缺少姓氏,则名字是唯一要打印的姓氏,因此请先进行测试。然后测试按首选顺序打印出全名的条件。if (string.IsNullOrEmpty(member.LastName)){    return member.FirstName.Trim();}else{    return currency.equal("CND")        ? $"{member.LastName} {member.FirstName}".Trim()        : $"{member.FirstName} {member.LastName}".Trim();}您也可以将其重写为嵌套的三元操作,尽管它实际上并不短,并且它是否更具可读性取决于阅读它的人...return (string.IsNullOrEmpty(member.LastName)        ? member.FirstName        : currency.equal("CND")          ? $"{member.LastName} {member.FirstName}"          : $"{member.FirstName} {member.LastName}").Trim();

慕田峪4524236

这绝对是过度设计的。不是更短,但意图更清晰,易于扩展。public static string GetDisplayName(Member member, string currency){&nbsp; &nbsp; return string.Join(" ", GetDisplayNameParts(member, currency));}public static IEnumerable<string> GetDisplayNameParts(Member member, string currency){&nbsp; &nbsp; switch (currency)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; case "CND":&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield return member.LastName ?? ""&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield return member.FirstName ?? ""&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield break;&nbsp; &nbsp; &nbsp; &nbsp; default:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield return member.FirstName ?? ""&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield return member.LastName ?? ""&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield break;&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP