c#---类和结构

来源:互联网 发布:年薪百万知乎 编辑:程序博客网 时间:2024/04/30 10:10

**类和结构都是用来创建对象 的模版。**

结构与类的区别:


1.他们在内存中存储方式,访问方式

类是堆上的引用类型,而结构是存储在栈上的值类型

2.都用new来声明实例。

不过结构的new并不是用来分配堆中的内存,并且可以不用new,只是调用相应的构造函数用来初始化字段值。

结构体的构造函数:

  • 结构不能定义无参的构造函数,并且微软也不允许在结构中定义无参构造函数
  • 默认构造函数用来把数值字段初始化0,引用类型初始化null。
  • 可有多个构造函数,根据参数调用对应构造函数

3.结构不支持继承,但支持接口继承


4.结构派生自System.ValueType


因为结构是值类型,分配内存时,超出作用域删除时,速度快。

但如果把他当做参数传递或把一个结构赋予给另一个结构(A=B,A和B是结构)

其中所有的值被复制,而类只复制引用,所以影响性能。

当作为参数时,尽量使用ref来传递,避免性能损失,需要注意这样就会改变结构的值了参数

0 0