【发布时间】:2016-10-10 20:12:04
【问题描述】:
我想从外围设备中保留大约 50 字节的内存。我有 10 个这样的外围设备,每个都有 5 个“通道”。 (每个通道都有自己的 50 字节内存)。
我的第一个想法是创建一个二维结构数组,每个结构都有一个用于有效性的布尔值(最后设置)和一个 50 字节的数组。我可以按如下方式访问此数组: myStruct[DEVICE][CHANNEL].arrayOfBytes[i];
但是,我是 C# 的新手(以及一般的编程)。从一些快速阅读看来,在 C# 中使用结构似乎是不受欢迎的。用像 C# 这样的语言做这样的事情的理想方法是什么?
【问题讨论】:
-
如果你是 C# 新手,我建议一个好的经验法则是坚持使用一个类,如果它可以满足你的目的(并且对于绝大多数事情,它会)。如果你发现使用一个类会给你一个特定的问题,你需要使用一个结构来解决,然后才考虑使用一个。在您的示例中使用结构并没有错,但是您必须质疑它们是否提供了真正的好处来证明它们附带的陷阱是正确的。 This question 是一本好书。
标签: c# memory data-structures struct