当前位置: 首页 > news >正文

c#,装箱拆箱知识点示例理解

c#专栏记录

内容

c#,装箱拆箱知识点示例理解

using System;
using System.Collections;
using System.Collections.Generic;
using System.Security.Cryptography.X509Certificates;namespace ConsoleApp2
{public class MyClass{public int Value { get; set; } = 10;}public class Program:MyClass // 继承{public static Program Myclass__ = new Program();static void Main(string[] args){Console.WriteLine("Hello World!");/*   1、集合操作   */ArrayList list = new ArrayList();list.Add(42);//int装箱为objectlist.Add(3.14);//double装箱为objectlist.Add(true);//bool装箱为objectint value = (int)list[0];var value_ = list[2];Console.WriteLine(value);Console.WriteLine(value_);/*   2object类型参数传递   */int i = 123;object obj = i;//int装箱为object,是引用类型,会在堆上分配新的内存Console.WriteLine(obj);//obj数值为·123i = 456;Console.WriteLine(obj);//obj的值没有改变    123Console.WriteLine(i);//`i`的值改变为456/*     装箱类型判断    */if (obj is int)Console.WriteLine("is int");elseConsole.WriteLine("is not int");if (list[2] is bool)Console.WriteLine("is bool");elseConsole.WriteLine("is not bool");/*   3、格式化字符串 装箱  */int number = 42;string result = string.Format("The number is {0}", number);//装箱/*   4、反射操作 装箱  *///通过反射设置值类型属性时会发生装箱var property = typeof(MyClass).GetProperty("Value");property.SetValue(Myclass__, 88);//装箱 int 88装箱为objectConsole.WriteLine(Myclass__.Value);/*    (1)、不要频繁装箱、拆箱。   好的方法,使用泛型集合   */List<int> list1 = new List<int>();for (int z=0; z < 1000; z++){list1.Add(z);}// 不好的做法 - 频繁装箱拆箱ArrayList list2 = new ArrayList();for (int y = 0; y < 1000; y++){list.Add(y);  // 每次循环都装箱}Console.WriteLine(list2[0]);}}
}

总结

阿巴阿巴,阿巴阿巴

致谢

靠咖啡续命的牛马,👍点赞 📁 关注 💬评论 💰打赏。


参考

[1] deepseek等ai


往期回顾

  • 无,新手上车
http://www.dtcms.com/a/340619.html

相关文章:

  • (Arxiv-2025)SkyReels-A2:在视频扩散变换器中组合任意内容
  • 分享智能解译算法获取及调用之建筑物提取
  • Ubuntu 虚拟显示器自动控制服务设置(有无显示器的切换)
  • pip 安装常见错误及实例化解决办法大全
  • 计算机网络技术学习-day4《路由器配置》
  • ubuntu下安装vivado2015.2时报错解决方法
  • SPI 机制深度剖析:Java、Spring、Dubbo 的服务发现哲学与实战指南
  • 根据Wireshark捕获数据包时间和长度绘制路由器发送给电脑数据的信号波形
  • 【FreeRTOS】临界资源管理
  • 树上背包(P2014 [CTSC1997] 选课)
  • 经营帮租赁经营板块:解锁资产运营新生态,赋能企业增长新引擎
  • 【最后203篇系列】034 使用SQLite构建简单的任务管理
  • Qt5.9.9 + Windows API 开发系统监控工具 - 教学级项目实战
  • Obsidian 1.9.10升级
  • 19.web api 10
  • SQL-leetcode— 2356. 每位教师所教授的科目种类的数量
  • 有关SWD 仿真和PA.15, PB3, PB4的冲突问题
  • 深入Linux内核:架构设计与核心功能解析
  • CSS3DRenderer+ CSS3DObject实现在 Three.js 中添加文本内容
  • 算法230. 二叉搜索树中第 K 小的元素
  • 10M25DCF484C8G Altera FPGA MAX10
  • 云原生俱乐部-RH294知识点归纳(1)
  • RK-Android11-PackageInstaller安装器自动安装功能实现
  • iOS App 混淆工具实战 医疗健康类 App 的安全与合规保护
  • 电脑驱动免费更新? 这款驱动管理工具:一键扫更新,还能备份恢复,小白也会用~
  • 【知识杂记】方差、标准差、均方误差、均方根误差与平均绝对误差,概念、计算公式、物理意义
  • 微型导轨的快速调平技术如何提升激光加工效率?
  • Python默认参数
  • CPTS--Administrator
  • 【clion】调试脚本并cmake构建Fargo项目win32版本