c#中的类 和 结构
结构声明格式
需要关键字 struct
namespace Tian{
public struct Text{}//结构
public class Text!{}//类
}
在c#中类和结构是同一级别的,结构是声明在命名空间里的 而没有在类中。
结构和类有许多相似的地方 都可以 写入方法和属性 声明字段 和类的基本操作相同,
但是也有很多不同的地方
1.在结构中不能给字段赋初值,但是类可以。
2.结构不允许显示声明不带参数的构造函数。
3.如果有构造函数则必须为所有字段赋初值。
4.结构不能声明空的构造函数。
5.结构体里面的构造函数不允许通过属性来赋初值。属性不一定操作的是相应字。
6.结构是值类型,存储在栈上/
7.结构不能定义自动属性,原因是自动属性会在编译时自动生成一个字段,但是这个 字段, 机构要求必须在构造函数中赋初值。
通过上面描述类和结构都可以完成一些相同的工作,那什么时候用类或者结构呢??
1.结构因为存储在栈上,栈的特点是存储速度快,但是容量小,因此当存储一些轻量级数据的时候使用。
2.类是引用类型,存储在堆上,速度相对较慢,但是这个依然是我们大的首选。
此处是我写的值类型和引用类型的原理和区别点击进入