需要帮助 'string.endswith(string)' 的最佳重载方法匹配有一些无效参数
Posted
技术标签:
【中文标题】需要帮助 \'string.endswith(string)\' 的最佳重载方法匹配有一些无效参数【英文标题】:Need Help the best overloaded method match for 'string.endswith(string)' has some invalid arguments需要帮助 'string.endswith(string)' 的最佳重载方法匹配有一些无效参数 【发布时间】:2015-12-11 07:15:54 【问题描述】:dynamic counter = 1;
string FileNameWithoutExtestion = "";
FileNameWithoutExtestion = file.Split('.')[0];
string FileExtestion = file.Split('.')[1];
while (System.IO.File.Exists(Dir + file))
if (true)
counter = counter + 1;
if (FileNameWithoutExtestion.EndsWith('_'))
file = FileNameWithoutExtestion + counter.ToString() + "." + FileExtestion;
else
file = FileNameWithoutExtestion + "_" + counter.ToString() + "." + FileExtestion;
if (FileNameWithoutExtestion.EndsWith('_')) //这里发生错误
怎么了?
【问题讨论】:
旁注:if (true)
完全无用,删除即可
旁注:你可能想要var counter = 1
;不是dynamic counter = 1
;
@Fubo 是正确的,请参阅工作演示 Ideone。还有为什么 dynamic 为什么不 int ?在这里,您只是递增名为 counter 的变量。
【参考方案1】:
String.EndsWith()
仅具有以string
作为参数的重载,您插入char
。
替换
.EndsWith('_')
与
.EndsWith("_")
我会使用这些路径方法来解析文件名和扩展名
string FileNameWithoutExtestion = System.IO.Path.GetFileNameWithoutExtension(file);
string FileExtestion = System.IO.Path.GetExtension(file); //.jpg
因为FileNameWithoutExtestion = file.Split('.')[0];
会在foo.bar.jpg
这样的文件名的情况下导致无效值
【讨论】:
用.EndsWith("_")替换后出现同样的问题 不可能 - 请交叉检查您的代码。可能你在另一个地方有这个电话 工作.. 谢谢@fubo以上是关于需要帮助 'string.endswith(string)' 的最佳重载方法匹配有一些无效参数的主要内容,如果未能解决你的问题,请参考以下文章
C# (String.StartsWith && !String.EndsWith && !String.Contains) 使用列表
Python3中isdigit(), isdecimal(), isnumeric()的区别和字符串的常用方法
JavaScript endsWith在IEv10中不起作用?
JavaSE8基础 String endsWith 判断A字符串是否以B字符串作为结束