C#学习笔记:结构体与类

C#结构体与类区别:

参考:http://www.runoob.com/csharp/csharp-struct.html

结构体
值类型 引用类型
存储在栈中(栈空间小,但访问速度快) 存储在堆中(堆空间大,但访问速度慢)
可定义构造函数(不能声明默认构造函数),不可定义析构函数  
不能继承其他的结构和类 类可以继承类
结构成员不能指定为 abstract、virtual 或 protected 类成员可以

结构实例化,可以使用New,也可以不使用New

(使用New,会调用构造函数;不使用New,不会调用构造函数,但在初始化全部字段前,字段将保持未赋值状态且对象不可用。)

使用New

结构体中声明的字段无法赋予初值,如以下会报Error

struct test001
{
    private int aa = 1;
}

类可以,如以下OK

class test002
{
    private int aa = 1;
}

结构体的构造函数中,必须为结构体所有字段赋值

(不能声明默认构造函数)

类的构造函数无此限制

 

你可能感兴趣的:(C#学习笔记:结构体与类)