[英]cannot access protected constructor in abstract class
我正在為抽象類創建單元測試代碼。 這是該類的一個片段:
public abstract class Component
{
private eVtCompId mComponentId;
private eLayer mLayerId;
private IF_SystemMessageHandler mLogger;
protected Component(eVtCompId inComponentId, eLayer inLayerId, IF_SystemMessageHandler inMessageHandler)
{
mLayerId = inLayerId;
mComponentId = inComponentId;
mLogger = inMessageHandler;
}
我在構造函數的參數中有兩個枚舉,后跟一個接口。
這是我的單元測試代碼的片段:
Component_Accessor target = new Component_Accessor(eVtCompId.MasterSWCommDevice, eLayer.Foundation, new MySysMsgHandler());
我不斷收到錯誤消息“Component_Accessor不包含帶'3'參數的構造函數”。 我似乎無法理解為什么會這樣。 當我刪除abstract
關鍵字時,單元測試工作正常。
我不明白為什么如果將類設置為abstract
,單元測試似乎無法“看到”構造函數。 任何人都可以解釋為什么會這樣嗎? 提前致謝。
您無法創建abstract
類的實例。 protected
構造函數僅對派生類可見。 讀取輔助功能級別(C#參考)以清除訪問修飾符之間的差異及其在各種(包括類)范圍內的影響。
來自MSDN:
在類聲明中使用abstract修飾符來指示一個類僅用於其他類的基類。
此外, Component
和Component_Accessor
絕對是不同的類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.