在设计自己的类型时,大家需要仔细考虑是将它们定义为值类型,还是引用类型.在某些情况下,值类型能够获得更好的性能.尤其是如果以下所有表述都是正确的,我们就应该考虑将类型声明为值类型.
该类型的行为类似于基元类型.
该类型不需要继承自任何其他类型.
该类型不会被任何其他类型继承.
该类型的实例不会频繁地用于方法的参数传递.默认情况下,参数以传值的方式传递,这会导致值类型实例中的字段被拷贝,从而损伤应用程序的性能.
该类型的实例不会作为方法的结果频繁地返回.从方法中返回一个值类型也会导致实例中的字段被拷贝到调用者分配的内存中,因此也会损伤应用程序性能.
该类型的实例不会被频繁地用于诸如ArrayList、Hashtable之类的集合中.这些管理一组通用对象集合的类会对值类型实例执行装箱操作,这将导致额外的内存分配,以及额外的内存拷贝操作,从而也会损伤应用程序的性能。