C#使用String.Format常见报错

    C#中使用String.Format(string format,object arg)连接字符串,format中添加带索引的占位符如:{0},然后就可以得到相应的字符串。其中会遇到几个常见的异常。

异常一、

FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.

System.String.FormatHelper (System.Text.StringBuilder result, IFormatProvider provider, System.String format, System.Object[] args) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/String.cs:1925)

如果字符串str中有占位符,但是使用string.Format时参数的个数小于占位符的个数就会报异常,或者占位符的索引不正确,索引是从0开始,但是需要传的参数是最大的决定。如:

        string str = ".....{0}......";
        Debug.Log(string.Format(str));

如果字符串str中没有占位符,即时使用string.Format时添加了参数也不会报异常。

异常二、

FormatException: Input string was not in a correct format.

System.String.FormatHelper (System.Text.StringBuilder result, IFormatProvider provider, System.String format, System.Object[] args) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/String.cs:1970)

如果字符串str中有不完整的大括号,即只有“{”或只有“}”时,就会出现这个异常。如:

        string str = ".......{{0}....";
        Debug.Log(string.Format(str,"1"));

如果你的字符串里面需要“{”这样的格式,你可以再添加一个“{”即可,反括号同理,如:

        string str = ".......{{{0}....";
        Debug.Log(string.Format(str,"1"));

异常三、

这种异常什么时候发生的搞忘了,如果想起了再加,看英文意思是索引超出了数组的长度。

IndexOutOfRangeException: Array index is out of range.

System.String.FormatHelper (System.Text.StringBuilder result, IFormatProvider provider, System.String format, System.Object[] args) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/String.cs:1912)

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值