我遇到了用asp.net编写业务逻辑的几种方法,但我想知道下面的两个例子,使用struct存储类变量有什么好处:
namespace Shopping
{
public struct ShoppingCart
{
public string Color;
public int ProductId;
}
public partial class MyShoppingCart
{
public decimal GetTotal(string cartID)
{
}
// Some other methods ...
}
}namespace Shopping
{
public partial class MyShoppingCart
{
public string Color{ get; set; }
public int ProductId{ get; set; }
public decimal GetTotal(string cartID)
{
}
// Some other methods ...
}
}发布于 2012-12-22 06:29:33
their answer here中的dsimcha态
当您不需要多态时,需要值语义,并且希望避免堆分配和相关的垃圾收集开销。但是,需要注意的是,与类引用(通常是一个机器单词)相比,结构(任意大的)传递成本更高,因此类在实践中可能会更快。
JoshBerke在his answer here中的状态
当您想要值语义而不是引用语义时,请使用结构。
来自http://msdn.microsoft.com/en-us/library/ms228593.aspx
1.7结构 与类一样,结构是可以包含数据成员和函数成员的数据结构,但与类不同,结构是值类型,不需要堆分配。struct类型的变量直接存储结构的数据,而类类型的变量存储对动态分配对象的引用。Struct类型不支持用户指定的继承,并且所有struct类型都隐式地从类型对象继承。 对于具有值语义的小数据结构,Structs特别有用。复数、坐标系统中的点或字典中的键值对都是结构的好例子。在小数据结构中使用结构而不是类可以使应用程序执行的内存分配数发生很大的变化。例如,下面的程序创建并初始化一个100点的数组。将Point实现为类,实例化了101个单独的对象--一个用于数组,另一个用于100个元素。
https://stackoverflow.com/questions/14000609
复制相似问题