为了账号安全,请及时绑定邮箱和手机立即绑定

如何简化 IF ELSE 语句 C#?

如何简化 IF ELSE 语句 C#?

C#
沧海一幻觉 2022-09-04 17:01:16
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();                    }我需要简化这个更短的陈述,但我不确定如何?我是新手,在这些东西我可能需要一些帮助.任何建议?
查看完整描述

3 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

这并不一定简化了它,它只是使它成为一个单行


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


查看完整回答
反对 回复 2022-09-04
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

您可以移动一些代码以删除重复项。如果缺少姓氏,则名字是唯一要打印的姓氏,因此请先进行测试。然后测试按首选顺序打印出全名的条件。


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();


查看完整回答
反对 回复 2022-09-04
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

这绝对是过度设计的。不是更短,但意图更清晰,易于扩展。


public static string GetDisplayName(Member member, string currency)

{

    return string.Join(" ", GetDisplayNameParts(member, currency));

}


public static IEnumerable<string> GetDisplayNameParts(Member member, string currency)

{

    switch (currency)

    {

        case "CND":

            yield return member.LastName ?? ""

            yield return member.FirstName ?? ""

            yield break;


        default:

            yield return member.FirstName ?? ""

            yield return member.LastName ?? ""

            yield break;

    }

}


查看完整回答
反对 回复 2022-09-04
  • 3 回答
  • 0 关注
  • 140 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号