1
假設類A是抽象的,並且定義了從它繼承的類B必須提供的只讀屬性。它是更好的做法來定義性能如抽象或具象設置保護:只讀屬性繼承:abstract或set-protected
public abstract class A
{
public abstract int Value { get; }
}
public class B : A
{
public override int Value { get { return 1; } }
}
OR
public abstract class A
{
public int Value { get; protected set; }
}
public class B : A
{
public B()
{
Value = 1;
}
}
我認爲第一個解決方案可能是更好的,但我想聽聽其他人的意見。
我會接受你的答案,因爲它有一些好點,沒有人做出了貢獻。然而,在此期間,我最終使用瞭解決方案1.考慮以下使用解決方案2:第三個類C繼承自B,它也想公開該值。此外,值不是常量,而是從B和C中的許多方法中設置。可能發生的情況是,B將在執行其一種方法時提供其值,而不是C應該提供的值。換句話說,C不能正確覆蓋該屬性。所以我認爲解決方案1通常更合適。 – Zmaster