微软的建议:以下任何一个条件不满足,就用 Class,不用 Struct。 (1)逻辑上代表一个单一值。 (2) 实例大小小于 16字节。 (3) 不可变的。 (4) 不频繁装箱。 # class 和struct 的区别: 1、class是引用类型,存储在堆上。变量本 身只是一个指针。传递类对象只是传递指针。 2、struct 是值类型,存储在栈上(或者是作 为另一个对象的字段)。变量本身就包含所有 数据。传递结构体会拷贝整个对象的所有数 据。 如果结构体很大,每次把它传给方法、赋值给 新变量或存入集合,CPU 都要完整复制一遍。
但 类只要复制 8 个字节的指针。
所以,结构体超过 16 字节,拷贝开销就开始超过类的引用传递开销。
而且,频繁的装箱和拆箱会导致大量的内存分配,性能远比直接用类要差。



请登录后发表评论
注册
停留在世界边缘,与之惜别