我有這樣一個類:爲什麼派生類無法從基類訪問受保護的getter?
public class Base
{
public Base(string name)
{
this.Name = name;
}
public string Name { get; set; }
public string PrettyName
{
get { return Prettify(Name); }
}
}
,我從中獲得:
public class Derived : Base
{
public Derived(Base b) : base(b.Name) { }
}
的Name
屬性不應訪問;邏輯名稱只能由PrettyName
訪問。所以我想我會做這樣的屬性:
public string Name { protected get; set; }
但我發現了這一點:
Cannot access protected member 'Name' via a qualifier of type 'Base'; the qualifier must be of type 'Derived' (or derived from it)
這是爲什麼? getter應該暴露給基類和它的所有子類。我在這裏弄錯了什麼?
因爲示例代碼是簡化的,我試圖用真正的代碼實現的是將'b'的所有屬性(不止是名稱)複製到新對象。 –