0
因此,我正在为我编写的控制台应用程序组织一些简单的单元测试。当我对测试进行最后的修改时,遇到了一个奇怪的访问问题。无法访问基类中的公共方法
Assert.Equals(testRegex.Evaluate(testString),true);
这引发了一个错误,说明评估方法由于其保护级别而无法访问。它在基类中是公开的。这是基类和子类。
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);
}
我的问题,解决这个问题是我很困惑,为什么我不能访问基类的方法。为什么?
我*相信*(不知道,但)你必须签署'RegexEvaluator'作为公共。它默认是内部的,这就是为什么你不能从另一个程序集中访问它(比如单元测试)。 – 2012-08-04 01:21:08
感谢您的反馈,Harbie。请不要忘记标记答案是正确的。问候 – 2012-08-04 01:29:31