public class Customer
{
public int CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public struct Customer
{
public int CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 14
你的第二个片段是一个可变的结构.这是一个非常糟糕的主意,IMO - 它们在各种不同的情况下表现得很奇怪,因为当你可能没想到它们时,可以复制价值.
你当然可以创建不可变的结构,有时候这是合适的 - 但我个人认为引用类型行为通常更自然.对于结构体,您还需要担心无论您使用何种构造函数,始终可以将变量设置为默认值 - 因此对于数字类型,字段将为零,对于引用类型,字段将为零.这对于必须处理无处不在的对象的可能性,而对于类,您可以向构造函数(或工厂方法)添加适当的验证,以确保您唯一需要担心的是空引用.
效率论证最终变得棘手,因为双方都有利弊,具体取决于你对对象做了什么.
缩短答案(太迟了?) - 我会默认使用类; 为自然个体值("即时"或"整数")的事物保存值类型.
| 归档时间: |
|
| 查看次数: |
1722 次 |
| 最近记录: |