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