我有以下
string currency = string.Empty;
Regex r = new Regex(@"~(\w*[a-zA-Z0-9$£~%]+)", RegexOptions.IgnoreCase | RegexOptions.Compiled);
for (Match m = r.Match(expression); m.Success; m = m.NextMatch())
{
currency = (m.Groups[1].Value);
break;
}
return currency;
意图是,在循环中的第一次匹配之后,它应该中断。
警告消息(无法到达的代码)正在发生m = m.NextMatch()的循环。
如何克服呢?
谢谢
最佳答案
基本上,您的代码目前已损坏。您实际上永远不会执行m = m.NextMatch()
,那么为什么要执行它呢?
我想你要:
Regex r = new Regex(@"~(\w*[a-zA-Z0-9$£~%]+)",
RegexOptions.IgnoreCase | RegexOptions.Compiled);
Match m = r.Match(expression);
string currency = m.Success ? m.Groups[1].Value : "";
就“货币”的最终版本而言,我个人认为这比较清楚。
关于c# - 如何避免出现无法访问代码的警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4734185/