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

C#引用传递代码记录

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 值传递和引用传递
{internal class Program{static void Main(string[] args){person P1=new person();P1.name = "张三";person P2 = P1;P2.name = "李四";Console.WriteLine(P1.name);Console.WriteLine(P2.name);//拆装箱int n = 10;object o = n;int nn = (int)o;//拿什么装的拿什么拆//  double oo = (double)o;double oo = (double)nn;Console.WriteLine(nn);Console.WriteLine(oo);Console.ReadKey();}public class person {public string name{get;set;}}}
}

代码分析1

  1. 创建对象
    • person P1 = new person(); 创建一个新的 person 对象,并将 P1 设置为引用该对象。
  2. 设置属性
    • P1.name = "张三"; 设置 P1 引用的对象的 name 属性为 "张三"。
  3. 引用赋值
    • person P2 = P1; 将 P2 设置为引用与 P1 相同的对象。此时,P1 和 P2 都指向同一个对象。
  4. 修改属性
    • P2.name = "李四"; 修改 P2 引用的对象的 name 属性为 "李四"。由于 P1 和 P2 引用的是同一个对象,因此 P1.name 也会变为 "李四"。
  5. 输出结果
    • Console.WriteLine(P1.name); 和 Console.WriteLine(P2.name); 都会输出 "李四",因为它们引用的是同一个对象。

代码分析2

  1. 变量 n 的定义
    • int n = 10; 定义一个整数变量 n,并初始化为 10。
  2. 装箱操作
    • object o = n; 将整数 n 装箱到 object 类型的变量 o 中。装箱是将值类型转换为引用类型的过程。
  3. 拆箱操作
    • int nn = (int)o; 将 object 类型的变量 o 拆箱为 int 类型的变量 nn。拆箱是将引用类型转换回原始值类型的过程。
  4. 类型转换
    • double oo = (double)nn; 将 int 类型的变量 nn 转换为 double 类型的变量 oo。由于 int 可以隐式转换为 double,因此显式转换是安全的。
  5. 输出结果
    • Console.WriteLine(nn); 输出 nn 的值,即 10。
    • Console.WriteLine(oo); 输出 oo 的值,即 10.0。

http://www.dtcms.com/a/244505.html

相关文章:

  • 【59 Pandas+Pyecharts | 淘宝华为手机商品数据分析可视化】
  • Android 实现可拖动的ImageView
  • linux内核编译问题记录
  • Ubuntu+k3s+karmada离线安装部署说明
  • java--认识反射
  • Wireshark 筛选功能详解:语法与示例
  • OpenAI推出o3-Pro模型
  • 开源项目实战学习之YOLO11:12.9 ultralytics-models-sam-amg.py
  • 【kafka】消息模型与工作原理详解
  • 车载软件和整车电子架构正重新定义汽车行业
  • 查看 Ubuntu 系统信息
  • MATLAB-磁偶极子的空间磁场强度仿真
  • 适合有C基础后快速上手C++
  • RAG技术全解析:从概念到实践,构建高效语义检索系统——嵌入模型与向量数据库搭建指南
  • 智能空气流向控制系统SKLX的优化与实践
  • 一款自制的OpenMV4模块
  • LRU 结构 LinkedHashMap:HashMap+双向链表的完美结合
  • 用python玩转大语言模型——从 RNN 到文本生成大语言模型的奇幻之旅
  • MMDG++:构筑多模态人脸防伪新防线,攻克伪造攻击与场景漂移挑战
  • 日期的数据格式转换
  • 爬取新浪新闻网的全部策略
  • Go 语言 JWT 深度集成指南
  • 升级 Ubuntu Linux 内核的几种不同方法
  • Squid 代理服务器实战:解决动态 IP 访问第三方接口的生产级方案
  • 软件定义对象存储购买指南
  • 数据库游标:逐行处理数据的“手术刀”——从原理到实战的深度解析
  • 链 表 类 型 全 面 总 结:单 向、双 向、循 环 链 表 的 特 性 与 选 型 指 南
  • PSCAD closed loop buck converter
  • 同步发电机原理
  • Java并发工具包