我有以下

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/

10-09 00:21