可以';t访问基类中的公共方法
本文关键字:方法 基类 访问 可以 | 更新日期: 2024-10-22 19:51:51
所以我为正在编写的控制台应用程序进行了一些简单的单元测试。当我对一项测试做最后的润色时,我遇到了一个奇怪的访问问题。
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);
}
我的问题是,我很困惑为什么我不能访问基类方法。为什么?
必须将RegexEvaluator
签名为public
。默认情况下它是internal
,这就是为什么您不能从另一个程序集(例如单元测试)访问它。