跨类传递路径调用Split方法报错:无法将String转换为Char
问题原因
C#的string.Split方法没有单个字符串分隔符 + StringSplitOptions的重载。你在函数里传的@"\"是字符串类型,编译器会优先匹配参数数量一致的Split(char, StringSplitOptions)重载——这个重载要求第一个参数是字符,字符串没法直接转成字符,所以抛出了“cannot convert from String to Char”的错误。
至于你说主函数里直接写没报错,大概率是你主函数里的代码实际用的是字符分隔符'\\'(而非字符串@"\"),只是描述时写错了;如果主函数里真的是写的@"\",编译器肯定也会报错,不可能正常运行。
解决方法
有两种可行的解决方式:
用字符作为分隔符(推荐,单个
\用字符更高效):
因为\是C#的转义字符,所以要写成'\\',代码示例:public string FilePath(string path, string newfolder) { string[] pathSeparators = path.Split('\\', StringSplitOptions.RemoveEmptyEntries); // 补充你的实际返回逻辑,当前代码无return语句也会编译报错 return ""; }用字符串数组作为分隔符(适合多字符分隔符场景):
把@"\"放到字符串数组里传入,匹配Split(string[], StringSplitOptions)重载:public string FilePath(string path, string newfolder) { string[] pathSeparators = path.Split(new[] { @"\" }, StringSplitOptions.RemoveEmptyEntries); // 补充你的实际返回逻辑 return ""; }
内容的提问来源于stack exchange,提问作者Govind Sankar M R
相关产品推荐
相关产品推荐

