属性是否仅使用`get`分配内存?

时间:2018-01-03 14:38:52

标签: c# memory properties

例如,

public int Health { get; set; }

分配4个字节。

public int Health { get { return ..... } }会分配任何内存吗?

或者它只是一个返回int值的方法?

1 个答案:

答案 0 :(得分:1)

计算属性不会增加分配的每个实例大小,就像添加方法不需要额外的每个实例内存一样。

  

我有2个选项,创建一些字段属性,因为它们的值可以从公式计算或从服务器发送计算值并使用它们。我想在保留属性语法的同时减少服务器包的大小,而不是制作很多方法。

这是一种常见的权衡,您可以决定使用内存来减少CPU使用,或者存储更多数据以节省计算量。答案取决于您对内存,CPU使用和网络的限制,并需要分析这两个选项。

如果服务器计算它发送给你的值,而不是发送一个存储值,那么权衡就会变得更复杂一些。由于您在服务器和客户端上都具有相同的计算,因此将两者保持同步将成为维护责任。