考虑以下代码:
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/