繁体   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