簡體   English   中英

用於抽象類的重寫屬性的內存分配

[英]Memory allocation for override properties of abstract classes

我有一個抽象類,在其中定義了一堆屬性。 這會導致子類的每個實例(需要覆蓋屬性)為此屬性分配內存嗎? 我問的原因是,某些子類將需要該屬性,而某些子類將不需要,但其他類確實可以訪問抽象類的屬性。

是否像這樣覆蓋它是否有所不同:

public override int someProperty {get; set;}

還是這樣(故意使get和set方法為空,因為可能沒有為關聯的字段分配內存?)

    public override int someProperty
    {
        get
        {
        }
        set
        {
        }
    }

第一個問題,我希望我能正確回答所有問題。

屬性並不(必然)暗示存儲已分配。 屬性只是圍繞getset方法的語法糖。 除非您還具有用於存儲數據的字段,否則它們只是方法對。

示例:如果您的基類具有如下屬性:

public virtual int SomeProperty { get { return 0; } { set { } }

然后,不分配存儲空間。

但是,如果您使用自動屬性:

public virtual int SomeProperty { get; set; }

然后會生成一個自動備份字段,為其分配存儲空間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM