加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 动态String.Format取决于params

发布时间:2020-12-15 05:39:05 所属栏目:百科 来源:网络整理
导读:给出以下示例: string amountDisplay = presentation.Amount == 1 ? "" : String.Format("{0} x ",presentation.Amount); 无论如何使用String.Format所以它的格式取决于属性,而不必做参数的’值’的条件? 另一个用例: String.Format("({0}) {1}-{2}",coun
给出以下示例:
string amountDisplay = presentation.Amount == 1 ? "" : String.Format("{0} x ",presentation.Amount);

无论如何使用String.Format所以它的格式取决于属性,而不必做参数的’值’的条件?

另一个用例:

String.Format("({0}) {1}-{2}",countryCode,areaCode,phonenumber);

如果我只有phonenumber,我最终会得到类似“()-5555555”的东西,这是不可取的.

另一个用例:

String.Format("my {0} has {1} cat[s]","Aunt",3)

在这种情况下,如果值为>我想在[]中包含s.例如1.

是否有任何String.Format的黑色’语法’根据参数值删除代码部分或null?

谢谢.

解决方法

并不是的.你可以为复数[s]破解一些东西,当然,但它不是一个匹配所有用例的通用解决方案.

无论如何,您都应该检查输入的有效性.如果您希望areaCode不为null,并且它是像字符串一样的可空类型,请在方法的开头进行一些检查.例如:

public string Foo(string countryCode,string areaCode,string phoneNumber)
{
    if (string.IsNullOrEmpty(countryCode)) throw new ArgumentNullException("countryCode");
    if (string.IsNullOrEmpty(areaCode)) throw new ArgumentNullException("areaCode");
    if (string.IsNullOrEmpty(phoneNumber)) throw new ArgumentNullException("phoneNumber");

    return string.Format(......);
}

在用户的输入上补偿一些验证错误不是UI的工作.如果数据错误或丢失,请勿继续.这只会给你带来奇怪的虫子和许多痛苦.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读