.Net中值类型的用法是什么?
官方指导方针表明,这些可能很少有实际用途。 有没有人有他们在哪里使用它们的例子?
Au Contrare ...你会发现C / C ++人群涌向结构aka值类型。
一个例子是数据包。 如果你有大量的数据包传输/传输,你可以使用值结构来模拟你的数据包。
原因:除了实例数据之外,将某些东西变为类会增加对象头中开销(大约8-16字节,我忘记)的开销 。 在不可接受的情况下,价值类型是最安全的选择
另一种用法是需要值类型语义的情况 - 一旦你创建了 - 初始化一个对象,它就是只读/不可变的,可以传递给n个客户端。
大多数情况下,模拟框架的行为是很好的。 许多基本数据类型(如int
s)都是值类型。 如果您的类型具有相似的属性,请使用值类型。 例如,在编写Complex
数据类型或BigInteger
,值类型是合乎逻辑的解决方案。 对于框架使用值类型的其他情况也是如此: DateTime
, Point
等。
如有疑问,请改用参考类型。
枚举是.NET世界的一等公民。 至于结构,我发现在大多数情况下可以使用类,但是对于记忆强烈的场景考虑使用结构。 作为一个实际的例子,我使用结构作为OSCAR(ICQ)协议原语的数据结构。
链接地址: http://www.djcxy.com/p/82803.html