C#使用String.Format常见报错

版权声明:欢迎转载,欢迎批评,共同学习,共同进步。如果有不正确的地方,希望帮我纠正! https://blog.csdn.net/qq_33461689/article/details/79929005

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

异常1、

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时添加了参数也不会报异常。

异常2、

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

异常3:、

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

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)



展开阅读全文

没有更多推荐了,返回首页