Unity学习之C#基础17——垃圾回收器、记忆点回忆、拆装箱

1.垃圾回收器

 GC工作消耗大量cpu资源。

2.复习值类型、引用类型,值参数、引用参数、输出参数

值类型、引用类型:值类型是一种一般存在栈中,占用资源较少的数据类型。引用类型是一种一般存在堆中,占用资源较多的数据类型。(相对于内存中的数据)

值参数、引用参数、输出参数:值参数一般是指方法中的参数,这个参数可以是值类型和引用类型。引用参数一般是用于在方法中改变一些值类型参数可以与引用类型一样在方法内实现值的改变。输出参数一般是用法与引用参数类似,不过它所传入的值可以是没有赋值的参数。

值参数没有限定关键词,引用参数和输出参数分别为ref、out,在传递参数即调用方法的时候也需要使用限定关键词。

3.拆装箱

装箱:

上图对应代码:

            int a = 1;
            object b = a;

此过程为装箱,比较消耗性能。

 拆箱:

            double a = 1;
            object b = a;
            float c = (float)b;
            

上面的代码中,当我们编码时不会报错,但是我们运行是会异常。如下:

 我们发现在float c=(float)b;这段代码出错,上面的异常大概的意思就是不能将object实例实现double类型到float类型的转换。

而从object类型转到一个double类型的过程我们称为拆箱。

拆箱我们需要注意的是必须类型相同,从什么类型装的箱,拆的箱就得是什么类型。

 通过上面装箱和拆箱,我们知道尽量避免类型向object类型的转换。

那么,当我们在创建方法的时候,形参object类型,实参传递值类型,就会装箱。

而这我们可以通过重载、泛型来避免。(泛型我们会在后面说到)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言行物恒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值