Regex.Replace和静态上下文?

时间:2010-10-08 07:40:14

标签: c# static-methods

我这里有这个代码:

private Func<string, string> RemoveSpecialChars = str => Regex.Replace(str, "[ ./\\-]");

由于静态上下文,它抱怨(无法访问静态上下文中的非静态方法替换)关于对Replace的调用。怎么了?

谢谢:)

2 个答案:

答案 0 :(得分:19)

您需要使用方法Regex.Replace(input,pattern,replacement)the one you use不是静态的:

private Func<string, string> RemoveSpecialChars = 
                       str => Regex.Replace(str, "[ ./\\-]", replacementString);

答案 1 :(得分:6)

Regex.Replace的静态重载具有不同的签名:

public static string Replace(
    string input,
    string pattern,
    string replacement
)

您错过了replacement参数