所以我为我正在编写的控制台应用程序整理了一些简单的单元测试。当我对测试进行最后的润色时,我遇到了一个奇怪的访问问题。
Assert.Equals(testRegex.Evaluate(testString),true);
这引发了一个错误,指出 Evaluate 方法由于其保护级别而无法访问。它在基类中是公共的。这是基类和子类。
abstract class RegexEvaluator
{
//Fields
protected string Regex { get; set; }
public bool Evaluate(string text)
{
if (System.Text.RegularExpressions.Regex.IsMatch(text, Regex))
return true;
else
return false;
}
}
public class SSNRegex : RegexEvaluator
{
public SSNRegex()
{
//Stubbed for now, don't worry about the regex
this.Regex = "\\d{3}-\\d{2}-\\d{4}";
}
}
我能够通过添加到 SSNRegex 来解决这个问题
public bool Evaluate(string text)
{
return base.Evaluate(text);
}
我的问题是我对为什么无法访问基类方法感到困惑。为什么?