gpt4 book ai didi

c# - 类与结构

转载 作者:行者123 更新时间:2023-11-30 20:00:23 24 4
gpt4 key购买 nike

以这两个为引用

Immutable class vs struct

http://msdn.microsoft.com/en-us/library/ms229017(v=vs.110).aspx

我想知道在我的情况下推荐什么(最好是为什么)。我目前正在构建一个库存管理器,添加、删除、移动、删除项目。 (稍后也会有装备/取消装备,但它们不会直接与我的库存整合,因为库存只会管理移除(装备)和添加(取消装备)

所以是类还是结构,这是个问题!

一个人指出了 8 字节的限制,msdn 说是 16。按 Item 类将容纳更多。

private string _name;
private string _desc;

private bool _dropable;
private int _price;
private int _maxQuantity;

我的 ItemSlot 结构/类将有一个 Item(或一个 int _itemId)以及一个数量。哪个应该(是?)加起来超过 16 个字节。

private ItemSlot[] _inventory;

public const int INVENTORY_SIZE = 50;

public Party () {
ItemSlot[] _inventory = new ItemSlot[INVENTORY_SIZE];
}

然而,我尝试学习的教程系列使用了一个结构;现在有了这些知识,我应该为项目槽设置一个类是正确的吗?还是我的理解太肤浅了?

最佳答案

使用

struct 的推荐大小不是因为可用内存(是的,正如 Arun 在评论中指出的那样,如今内存很便宜)。但真正的原因是因为 struct 按值复制。这意味着每次你传递你的结构时......每个字段都会随之复制。因此,您随处可见的“struct byte-limit”建议就是为了避免这种情况。

另一方面, 只复制引用的值..这是它运行的处理器的 native 字长..使得复制操作几乎无法测量。

你说你的结构将比 16 字节大得多..这绝对是使用 class 的充分理由,纯粹是为了避免在使用 a 时复制整个内存块的开销结构

关于c# - 类与结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21186296/

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