C#的装箱拆箱和Nullable类型

编程入门 行业动态 更新时间:2024-10-08 10:51:32

C#的装箱拆箱和Nullable<a href=https://www.elefans.com/category/jswz/34/1771355.html style=类型"/>

C#的装箱拆箱和Nullable类型

1.装箱就是把值类型转变为引用类型,拆箱就是将引用类型转变为值类型

int iToBoxing = 100;
object iBoxed = iToBoxing;

装箱不需要特别的语法,其实就是一个隐式转换,因为所有的数据类型都是System.Object的子集。

  1. 装箱操作的具体过程:

“值类型”是存储在内存的“栈”上面,而引用类型只会在“栈”上面存储一个引用,在“堆”上面存储具体的值,装箱就相当于把值类型打包放在“堆”上面,在栈上面只留一个引用,拆箱则是反过来。

  1. 拆箱:
int iUnboxing = (int)iBoxed;

相当于显示转换,同样有时候会出现数据丢失或者报错。比如:

object nullObject = null;
int iNull = (int)nullObject;
//编译报错“空引用异常”

装箱和拆箱操作会占用不少的内存,要尽量避免进行过多装箱拆箱操作。

int ? isNullable = 100;

等价于

System.Nullable&lt;int&gt;isNullable2 = 10;

相当于声明了一个整型的变量iii,如果第一个值isNullable为空的话,就赋给它500,如果isNullable不为空,就赋予它isNullable的值。

更多推荐

C#的装箱拆箱和Nullable类型

本文发布于:2024-02-06 12:02:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1748990.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:类型   Nullable

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!