[英]Memory allocation for override properties of abstract classes
我有一个抽象类,在其中定义了一堆属性。 这会导致子类的每个实例(需要覆盖属性)为此属性分配内存吗? 我问的原因是,某些子类将需要该属性,而某些子类将不需要,但其他类确实可以访问抽象类的属性。
是否像这样覆盖它是否有所不同:
public override int someProperty {get; set;}
还是这样(故意使get和set方法为空,因为可能没有为关联的字段分配内存?)
public override int someProperty
{
get
{
}
set
{
}
}
第一个问题,我希望我能正确回答所有问题。
属性并不(必然)暗示存储已分配。 属性只是围绕get
和set
方法的语法糖。 除非您还具有用于存储数据的字段,否则它们只是方法对。
示例:如果您的基类具有如下属性:
public virtual int SomeProperty { get { return 0; } { set { } }
然后,不分配存储空间。
但是,如果您使用自动属性:
public virtual int SomeProperty { get; set; }
然后会生成一个自动备份字段,为其分配存储空间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.