文章目录

  • 1 C#中的值类型
    • 1.1 值类型示例程序
    • 1.2 值类型(基本数据类型)的变量使用特点
  • 2 C#中的引用类型
    • 2.1 引用类型数据程序示例
    • 2.2 引用数据类型的变量使用特点
  • 3 变量类型分类汇总

1 C#中的值类型

1.1 值类型示例程序

static void Test()
{int wangScore = 90;int zhangScore = wangScore;Console.WriteLine($"修改前二人的成绩如下:小王成绩:{wangScore} 小张成绩:{ zhangScore}");//修改小张的成绩zhangScore += 5;Console.WriteLine("修改后二人的成绩如下:");Console.WriteLine($"小王成绩:{wangScore} 小张成绩:{ zhangScore}");}/*
输出结果:
修改前二人的成绩如下:小王成绩:90 小张成绩:90
修改后二人的成绩如下:
小王成绩:90 小张成绩:95
修改前二人的成绩如下:小王成绩:90 小张成绩:90*/

1.2 值类型(基本数据类型)的变量使用特点


基本数据类型在传递变量时,传递的是变量的“副本”,而不是变量本身,变量修改后相互没有影响。


2 C#中的引用类型

2.1 引用类型数据程序示例

static void Test()
{int[] score = { 90, 90 };Console.WriteLine($"修改前二人的成绩如下:小王成绩:{score[0]} 小张成绩:{ score[1]}");//修改小张的成绩   int[] editedScore = score;//把第一个数组赋值给第二个数组editedScore[1] += 5;Console.WriteLine("修改后原有数组二人的成绩如下:");Console.WriteLine($"小王成绩:{score[0]} 小张成绩:{ score[1]}");Console.WriteLine("-------------------------------------------------");Console.WriteLine("修改后新的数组二人的成绩如下:");Console.WriteLine($"小王成绩:{editedScore[0]} 小张成绩:{ editedScore[1]}");/*
输出结果:
修改后原有数组二人的成绩如下:
小王成绩:90 小张成绩:95
-------------------------------------------------
修改后新的数组二人的成绩如下:
小王成绩:90 小张成绩:95
*/
}

记住:数组是引用变量!

2.2 引用数据类型的变量使用特点


引用类型的变量在传递给新变量时,传递的是变量本身(引用/地址/指针)。新变量并没有开辟新空间,它只是指向了引用变量。当新变量改变值时,本质上改变的是“被引用变量”本身的值。


3 变量类型分类汇总

值类型:

  • int、double等值类型
  • struct结构
  • enum:枚举

引用类型:

  • string:字符串(特殊包装后,效果和值类型一样)
  • 数组
  • 系统类库中的各种对象
  • 自定义类

认识String和string:

  • String是.NET Framework的类(在C# IDE中不会显示蓝色),其表现和值类型一样
  • string是一种数据类型,映射为.NET Framework的String,是String类的别名
  • 使用string时编译器会把它编译成String,C#中一般都是用string
  • string是关键字,不能作为类、结构、枚举、字段、变量、方法、属性的名称,而String不是关键字,可以使用

参考资料:

  1. .NET/C#工控上位机VIP系统学习班【喜科堂互联教育】

C#中的值类型和引用类型相关推荐

  1. .NET中的值类型与引用类型

    .NET中的值类型与引用类型 这是一个常见面试题,值类型(Value Type)和引用类型(Reference Type)有什么区别?他们性能方面有什么区别? TL;DR(先看结论) 值类型 引用类型 ...

  2. 述说C#中的值类型和引用类型的千丝万缕

    关于值类型和引用类型方面的博客和文章可以说是汗牛充栋了,今天无意中又复读了一下这方面的知识,感觉还是有许多新感悟的,就此时间分享一下: CLR支持两种类型:值类型和引用类型,看起来FCL的大多数类型是 ...

  3. Windows Phone 开发起步之旅之二 C#中的值类型和引用类型

    今天和大家分享下本人也说不清楚的一个C#基础知识,我说不清楚,所以我才想把它总结一下,以帮助我自己理解这个知识上的盲点,顺便也和同我一样不是很清楚的人一起学习下.  一说起来C#中的数据类型有哪些,大 ...

  4. .net知识和学习方法系列(十七)CLR-CLR中的值类型和引用类型

    C#中有谈到两种类型,值类型和引用类型(其实是CLR支持两种类型). 值类型包括:简单类型(int ,double,long,bool,char等,string除外),struct,enum 引用类型 ...

  5. golang中的值类型和引用类型

    值类型与引用类型 不管是Java还是golang中,都有值类型和引用类型的概念.在使用两者时,发现这两种语言之间还是有差异的. 值类型 值类型:这些类型的变量直接指向存在内存中的值,值类型的变量的值存 ...

  6. Java 基础 —— Java 中的值类型与引用类型

    一.值类型与引用类型 在 Java 中类型可分为两大类:值类型与引用类型.值类型就是基本数据类型(如 int.double 等),而引用类型是指除了基本的变量类型之外的所有类型(如通过 class 定 ...

  7. python中的引用类型_Python中的值类型与引用类型

    其实各个标准资料中没有说明Python有值类型和引用类型的分类,这个分类一般是C++和Java中的.但是语言是相通的,所以Python肯定也有类似的.实际上Python 的变量是没有类型的,这与以往看 ...

  8. C#中的值类型(value type)与引用类型(reference type)的区别

    ylbtech- .NET-Basic:C#中的值类型与引用类型的区别 C#中的值类型(value type)与引用类型(reference type)的区别 1.A,相关概念返回顶部 C#中有两种数 ...

  9. string:值类型?引用类型?[转]

    string是一种很特殊的数据类型,它既是基元类型又是引用类型,在编译以及运行时,.Net都对它做了一些优化工作,正式这些优化工作有时会迷惑编程人员,使string看起来难以琢磨,这篇文章分上下两章, ...

最新文章

  1. wrs-arcface虹软人脸识别
  2. 服务器上安装n点虚拟主机,N点虚拟主机管理系统之①-运行N点
  3. 深度解析容器化技术在广发证券交易系统的应用
  4. C++中的空类,编译器默认可以产生哪些成员函数
  5. UVA - 1533Moving Pegs移动小球 (bfs加状态压缩)
  6. SAP中国,在中国,为中国,一些包含了SAP logo的NBA运动套装
  7. 关于mysql修改密码后的问题
  8. 网站图片全自动加密_11 个值得收藏的在线工具和资源网站
  9. java字节型的关键字_DAY06-07 Java的基础语法-注释、标识符、关键字、数据类型
  10. 2-自定义 Mybatis 框架
  11. java定义私有变量_java – 为什么在类中声明变量私有?
  12. java+webrtc+回声消除,WebRTC回声消除(2)
  13. php 盗链新浪图片_php实现博客,论坛图片防盗链的方法
  14. treetable怎么带参数_treeTable的使用(ajax异步获取数据,动态渲染treeTable)
  15. 微信小程序中服务器主动向小程序多个客户端发送通知消息(模板消息)的解决方法
  16. 《当程序员的那些狗日日子》五
  17. (5)项目合同管理--信息系统项目管理师考试系列
  18. oracle 字符替换
  19. 字符串的几种常见的反转
  20. The Painted Veil

热门文章

  1. Android ramdisk.img system.img userdata.img 介绍与使用
  2. 逆向学习技术!拆解驱动器,学习布局走线技术
  3. 基于MATLAB的小波去噪
  4. 第1章 Qt概述和下载安装及创建工程
  5. Python3的深拷贝和浅拷贝
  6. Lesson 4- Exchange Server 2010 Publish
  7. 思科推出EnergyWise合作伙伴计划
  8. Issue 140: Tweet
  9. jQuery图片轮播(焦点图)插件(转载)
  10. Lotus Domino单用户多账号多邮件地址配置