C#系列之值类型与引用类型

2023-11-05

目录

1.变量类型的复习

2.值类型和引用类型的区别


1.变量类型的复习

①无符号整形

byte b=1;

ushort us=1;

uint ui=1;

ulong ul=1;

②有符号整形

sbyte sb=1;

short s=1;

int i=1;

long l=1;

③浮点数

float f=1f;

double d=1.1;

decimal de=1.1m;

④特殊类型

bool bo=true;

char c='A';

string str="strs";

⑤复杂数据类型

⑥enum枚举

⑦数组(一维,二维,交错数组)

我们将以上的类型分为值类型和引用类型:

引用类型:string,数组,类

值类型:结构体,其他;

2.值类型和引用类型的区别

①使用上的区别

//值类型
int a=10;
//引用类型
int[] arr2=new int[] {1,2,3,4};

//声明了一个b让其等于之前的a
int b=a;
//声明了一个arr2让其等于之前的arr
int[] arr2=arr;
Console.WriteLine("a={0},b={1}",a,b};
Console.WriteLine{"arr[0]={0},arr2[0]={1}",arr[0],arr2[0]);

b=20;
arr2[0]=5;
Console.WriteLine("修改了b和arr2[0]之后");
Console.WriteLine("arr[0]={0},arr2{0}={1}",arr[0],arr2[0]);

②为什么会有以上区别?

值类型在相互赋值时,把内容拷贝给了对方,它变我不变。

引用类型的相互赋值时,是让两者指向同一个值,它变我也变。

注意:直接改元素和new一个新数组是有区别的,new就是新开一个房间,如下:

arr2=new int[]{99,3,2,1};
Console.WriteLine("arr[0]={0},arr2[0]={1}",arr[0],arr2[0]);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#系列之值类型与引用类型 的相关文章

随机推荐

  • DocX 生成Word

    当然 这里是一个使用DocX库在 NET Core中操作Word文档的简单示例 首先 确保你在项目中安装了DocX库 你可以在NuGet包管理器中搜索并安装DocX 然后 使用以下代码来创建一个简单的Word文档并添加一些内容 using
  • 有关Centos7的网络配置问题(桥接模式)

    在经过了NAT模式配置的多重灾难后 本小白得知 桥接模式还可以ping通主机 于是做了一个大胆的决定 转为桥接模式 接下来记录一下我的过程 PS 指路 NAT模式下网络配置 1 打开网络适配器 禁用两块虚拟网卡 2 打开VMware Wor
  • springboot+mysql汉服销售系统-计算机毕业设计源码95171

    目 录 摘要 1 绪论 1 1开发背景 1 2国内外研究慨况 1 3springboot框架介绍 1 4论文结构与章节安排 2 Springboot汉服销售系统小程序系统分析 2 1 可行性分析 2 1 1 技术可行性分析 2 1 2 经济
  • Java基本知识之运算符

    算数运算符 注意一下这个 运算类型 结果 a 2 b a a 3 b 3 a 3 b a a 3 b 2 数字 先自增1 后运算 数字 先运算 后自增1 public class Hello public static void main
  • 一文带你了解Flutter如何内存优化

    在Flutter应用程序中 优化内存管理是提高应用程序性能和稳定性的关键 本文介绍了如何优化Flutter应用程序的内存管理 包括理解Flutter的内存管理机制 使用内存分析工具 减少不必要的对象创建 优化图片加载 避免使用过多的动画和效
  • MySQL组合索引提升查询速度实战

    1 问题描述 生产环境后台管理查询司机钱包汇总列表及统计所有司机钱包收入和支出金额 不管是查询一天还是一个月的速度都比较慢 经常会超时 超过两分钟未响应结果 2 问题排查 通过排查发现查询时的两张表数据时间字段均是以日期为单位 而每张表中的
  • 智能机器人教具法则

    对于智能机器人教育 国内政策不断落地 新生代父母增加 教育理念和教育水平提高 儿童综合素质培养的关注度越来越高 在教育观念升级的环境下 相比于被电子屏幕占据大部分的时间 格物斯坦希望为孩子们找到游戏和教育之间的平衡点 所以 寓教于乐 逐渐成
  • 【软件工程基础复习整理】第三章项目计划(1)概述与风险分析

    软件项目计划 一年之计在于春 一日之计在于寅 增广贤文 谋于前才可捕获于后 临大事而不乱 苏轼 如果软件项目值得开发 能够开发 我们要制定项目计划 对资源成本框架进行合理的调度 软件项目的失败大多数是因为计划不周引起的 计划对项目的成败有关
  • 1200*A. You‘re Given a String...(枚举)

    include
  • 安卓前端 UI框架

    框架大全 http www oschina net project tag 342 android ui 前言 忙碌的工作终于可以停息一段时间了 最近突然有一个想法 就是自己写一个app 所以找了一些合适开源控件 这样更加省时 再此分享给大
  • JSch-用java实现服务器远程操作

    介绍 前段时间接了一个比较特殊的需求 需要做一个用于部署服务的服务 主要是将一个k8s服务集群部署到远端的服务器上 具体服务器的连接信息会通过接口传入 本来部署是人工来完成的 无非是将一些必须的文件scp到目标服务器上 然后ssh远程登录
  • ubuntu c语言头文件,Ubuntu找不到stdio.h等头文件_安装c库_build-essential安装失败解决...

    最近安装的Ubuntu1804系统 vim gcc都是现安的 用gcc编译时出现找不到头文件情况 于是百度 原来linux类的操作系统上面开发程序 光有了gcc 是不行的 它还需要一个 build essentia 作用是提供编译程序必须软
  • 【无标题】torch.optim.SGD参数详解

    torch optim SGD是PyTorch中实现的Stochastic Gradient Descent SGD 优化器 用于更新神经网络中的参数 以最小化损失函数 从而提高模型的精度 它的一些重要参数如下 lr 学习率 learnin
  • office文档图标显示不正常

    一直用Office2013 前几天用到WPS一个功能 用完后就卸载了 结果电脑中的office文档图标 word excel ppt等 都显示异常 网上查找好久解决了 网址如下 https jingyan baidu com article
  • target_link_libraries 和link_libraries区别

    TARGET LINK LIBRARIES 设置要链接的库文件的名称 语法 TARGET LINK LIBRARIES targetlibrary1
  • 数据结构--并查集

    并查集适用情况 1 有时候 并不关心数据之间的前后关系 也不关心数据的层次关系 一些确定元素只是单纯的聚集在一起 这样的元素聚集集合被称为集合 当希望知道某个数据是否存在一个集合中 或者两个元素是否在同一个集合中时 就需要使用一些集合数据结
  • windows 安装NVM 出现版本切换不成功 问题解决与分析

    1 安装nvm的时候要去删除默认目录下C Program Files nodejs的文件夹 安装完成后也要去检查这个文件夹是不是存在 2 配置环境变量 对应第一步的 2 使用nvm install 版本号 如果能成功下载node 注意说的成
  • FFmpeg部署及操作指南

    什么是FFmpeg FFmpeg是一个开源的跨平台音视频处理工具集 可以用于处理 转换 编辑和流媒体音视频文件 它提供了一组强大的命令行工具 可以实现音视频的解码 编码 封装 过滤 转码等功能 FFmpeg的功能 FFmpeg的功能非常多
  • matlab分类算法函数,MATLAB分类与预测算法函数

    1 glmfit 功能 构建一个广义线性回归模型 使用格式 b glmfit X y distr 根据属性数据X以及每个记录对应的类别数据y构建一个线性回归模型 distr可取值为 binomial gamma inverse gaussi
  • C#系列之值类型与引用类型

    目录 1 变量类型的复习 2 值类型和引用类型的区别 1 变量类型的复习 无符号整形 byte b 1 ushort us 1 uint ui 1 ulong ul 1 有符号整形 sbyte sb 1 short s 1 int i 1