gpt4 book ai didi

c# - 属性是否会增加实例的内存大小?

转载 作者:太空狗 更新时间:2023-10-30 00:02:11 25 4
gpt4 key购买 nike

这可能是个愚蠢的问题,但是对象属性是否每个实例都占用任何内存?

据我所知,当您实例化一个对象时,每个值字段占用其大小,引用字段类型每个字段占用 4 个字节。但是假设你有一个具有 1000 个属性的对象,它通过其他对象获取数据,这些属性本身是否占用任何内存?

自动属性自然会这样做,因为它只是语法糖,但它看起来不像普通属性应该......

最佳答案

在这方面,属性就像普通方法一样。

代码需要存储在某个地方(每个类型一次)并且使用的任何字段(自动属性!)需要每个实例存储。局部变量也会占用一些内存。

一些例子:

private int myProperty;
public int MyProperty { get => myProperty; set => myProperty; }

属性本身不占用实例内存,但 myProperty 当然会。

public int MyProperty { get; set; }

我没有定义任何支持字段,但编译器为我做了 - 所以生成的支持字段仍然占用实例内存。

public int Count => somelist.Count;

这里没有额外的支持字段,所以这不需要任何额外的实例内存(当然 someList 除外)。

关于c# - 属性是否会增加实例的内存大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4223589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com