C# 装箱和拆箱(以及 as ,is)

装箱(Boxing)是指将值类型转换为引用类型的过程

拆箱(Unboxing)是将引用类型转换回值类型的过程。

cs 复制代码
    int a = 1;
    object b = a; //装箱

    object obj = 10;
    int num = (int)obj; //拆箱


     ArrayList list= new ArrayList();

     list.Add(123);//装箱

     int i = (int)list[0];//拆箱

操作符 as is

cs 复制代码
  //  as  将对象转换成引用类型或者可控类型 如果转换不行,返回null 

  object obj = "你好";
  string str=obj as string;


  //  is  结果返回的是一个布尔值 用于判断是否是该类型

  object obj2 = "1234";
  Console.WriteLine(obj is string);
相关推荐
含目的基因的质粒26 分钟前
Python异常、模块、包
服务器·开发语言·python
纸照片39 分钟前
WPF中为Button设置IsMouseOver和IsPressed事件中改变背景颜色不起作用
c#·.net·wpf
千码君20161 小时前
Go语言:解决 “package xxx is not in std”的思路
开发语言·后端·golang
Ypuyu2 小时前
【GoLang】【框架学习】【GORM】4. 使用 BeforeUpdate hook 操作时,出现反射报错
开发语言·学习·golang
关关长语2 小时前
Dotnet使用System.Xml.Serialization处理Xml序列化
xml·c#·.net
maizeman1262 小时前
用R语言生成指定品种与对照的一元回归直线(含置信区间)
开发语言·回归·r语言·置信区间·品种测试
脚踏实地的大梦想家2 小时前
【Go】P17 Go语言并发编程核心:深入理解 Goroutine (从入门到实战)
java·开发语言·golang
初学小白...2 小时前
线程同步机制及三大不安全案例
java·开发语言·jvm
用坏多个鼠标4 小时前
Nacos和Nginx集群,项目启动失败问题
java·开发语言
满天星83035774 小时前
【C++】右值引用和移动语义
开发语言·c++·redis·visual studio