考虑以下代码:

var x = "tesx".Remove('x');

如果运行此代码,则会出现以下异常:



为什么我可以将char而不是int传递给此方法?
为什么我没有编译错误?

为什么编译器有此行为?

最佳答案

您尝试删除声明为char的'x',x等于120
.Remove仅采用int类型的2个参数作为开始和(可选)计数从字符串中删除。

如果您传递一个字符,它将被转换为整数表示。这意味着如果您传递'x'-> 120大于字符串的.Length,这就是为什么它将引发此错误的原因!

关于c# - 为什么字符串Remove()方法允许使用char作为参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19343958/

10-11 19:09
查看更多