整个错误文本是:
'System.Text.RegularExpressions.Regex.Replace(string, string, string, System.Text.RegularExpressions.RegexOptions)'无法使用实例引用访问成员; 用类型名称来限定它
这是代码.我在这里的另一篇文章中删除了"静态",但它仍然给我错误.
我很感谢所有专家的帮助 - 谢谢!
public string cleanText(string DirtyString, string Mappath)
{
ArrayList BadWordList = new ArrayList();
BadWordList = BadWordBuilder(BadWordList, Mappath);
Regex r = default(Regex);
string element = null;
string output = null;
foreach (string element_loopVariable in BadWordList)
{
element = element_loopVariable;
//r = New Regex("\b" & element)
DirtyString = r.Replace(DirtyString, "\\b" + element, "*****", RegexOptions.IgnoreCase);
}
return DirtyString;
}
Run Code Online (Sandbox Code Playgroud)
问题在于使用该方法Replace而不是在声明中使用static.您需要使用typename Regex而不是变量r
DirtyString = Regex.Replace(DirtyString, "\\b" + element, "*****", RegexOptions.IgnoreCase);
Run Code Online (Sandbox Code Playgroud)
原因是在C#中你不能通过static类型的实例访问方法.这里Replace被static因此它必须通过使用类型Regex