【C#】——类和结构体

6 篇文章 0 订阅

学习到类,发现和结构体有很多相似的地方,而且最近看到了值类型和引用类型,所以特意总结一下。

创建

类的创建

    public class Fruit
    {
    
    }

结构体的创建

    public struct Vegetable
    {

    }

区别:

从创建的角度来说,两者非常相同,只不过是关键字不同。

类的关键字:class

结构体的关键字:struct

构造函数

相同点:

方面结构体
是否包含构造函数
是否可以实例化

不同点:

方面结构体
创建新的构造函数,旧的构造函数是否被覆盖
构造函数和字段的关系没有强制规定必须包含所有字段强制规定必须包含每个字段
类型值类型引用类型

因为之前谈到了引用类型和值类型,所以就要聊一下堆和栈。

堆和栈的区别:

堆是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;局部值类型变量、值类型参数都是可以在栈内存中的。
堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。

值类型和引用类型的区别:

1、将一个值类型变量赋给另一个值类型的变量时,将复制包含的值,引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
2、只类型不可能派生出新的类型,但与引用类型相同的是,结构也可以实现结构
3、值类型不可能包含null值。
4、每个值类型均有一个隐式的默认构造函数来初始化该类型的默认值。

如果你觉得你不能承担起家里的重担,那就趁着年轻,好好学习,加油!

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值