用到List<T>,T为结构时,new 对象,对象每次生成值存入list中,list存入每次生成的值;T为类时,new 对象,对象每次生成值存入list中,list存入的都会变成最近一次生成的值。
也就是说:结构与类,new一个对象时,结构每次引用对象都会生成不同的值,但类的对象每次生成的值都会把前面的值覆盖。
原因:结构对象每次生成的值都会开辟新的内存空间,来存放每次的值,而类对象每次生成的值
都会只在原来new生成的对象内存空间中,内存固定,所以会把原来的值覆盖掉。
即如下面所说:
类:
类是引用类型在堆上分配,类的实例进行赋值只是复制了引用,都指向同一段实际对象分配的内存
类有构造和析构函数
类可以继承和被继承
结构:
结构是值类型在栈上分配(虽然栈的访问速度比较堆要快,但栈的资源有限放),结构的赋值将分配产生一个新的对象。
结构没有构造函数,但可以添加。结构没有析构函数
结构不可以继承自另一个结构或被继承,但和类一样可以继承自接口
时间: 2024-10-20 08:58:30