类与结构体的区别

结构体: 1.值类型 2.有方法,字段,索引,属性,运算符方法和事件 3.不能继承其他类或结构体 4.结构体不能作为其他结构体或类的基础结构 5.实现一个或多个接口 6.结构成员不能指定为abstract,virtual或protected 7.当你使用new操作符创建一个结构对象时,会调用适当的构造函数来创建结构 8.与类不同结构体可以不使用new操作符进行实例化 9.当结构体不使用new操作符时,只有在所有字段都被初始化之后,字段才被赋值,对象才被使用 10.结构体中声明字段无法赋予初值 11.隐式构造函数无论如何都会存在 12.结构体构造函数中,必须为结构体所有字段赋值 13.使用完后自动解除内存分配 类: 1.引用类型 2.有方法,字段,索引,属性,运算符方法和事件 3.可以继承其他类,或者被其他类继承 4.实现接口 5.可以指定成员为abstract,virtual或protected 6.实例化必须new 7.创建构造函数后,隐式构造函数自动没有,如果需要必须手动加 8.垃圾回收机制

使用场景分析: 1.当堆栈的空间有限,且大量的逻辑对象时,用类 2.对于点,矩形和颜色这样的轻量级对象,假如要声明一个含有许多颜色对象的数组,使用结构体降低CLR为每个对象分配内存的消耗 3.在表现抽象和多级别的对象层次时,类是最好的选择,结构体不支持继承

C#
JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。