[英]Cannot override property's protected set
我有以下基類:
abstract class Base
{
public abstract object Var
{
get;
protected set;
}
}
而這個派生類:
class Derived : Base
{
public override object Var
{
get {//code here
}
set {//code here -- I get error here!
}
}
}
但是我收到了這個錯誤:
覆蓋'protected'繼承成員'Var'時無法更改訪問修飾符
我嘗試在設置之前添加protected
和private
關鍵字,但它沒有幫助。 我該如何解決?
更新:
基類必須確保子類在創建時為Var
提供值。 所以我需要在Base類中聲明setter。
或者,我可以聲明一個私有成員變量來執行此操作並刪除setter,但這不是這里討論的選項。
問題是派生類中的set
具有public
可見性 - 因為您沒有明確指定protected
。 由於此屬性的集合在基類中具有受保護的可見性,因此您將收到錯誤
覆蓋'protected'繼承成員時,無法更改訪問修飾符
您可以通過在派生類中提供set protected protected visibility來修復它:
class Derived : Base {
public override object Var {
get { return null; }
protected set { // <------ added protected here
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.