博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一章 数据类型
阅读量:5019 次
发布时间:2019-06-12

本文共 996 字,大约阅读时间需要 3 分钟。

C#数据类型分为两类:值类型,引用类型。

值类型直接存储其值,引用类型存储对值的引用,值类型存在堆栈(即栈)上,引用类型存储在托管堆(即堆)上,值类型转为引用类型叫做装箱,引用类型转为值类型叫拆箱。

集体参考:(很重要,必看!!!!!

1.值类型:简单类型,结构类型,枚举类型。

     简单类型:

          整形:sbyte,short,int,long,byte,ushort,uint,ulong.

                       浮点型:float,double,decimail

          布尔类型:bool

          char类型:char

     结构类型:struct(struct和类相似,但是没有继承)

2.引用类型:类,对象,字符串

      例子:假设我们有个Member 类,字段有Name和Num:

Member member1 = new Member { Name = "Marry", Num = "001" };Member member2 = member1;member1.Name = "John";Console.WriteLine("member1.Name={0}  member2.Name={1}",member1.Name,member2.Name);int i = 1;object o = i;object o2 = o;o = 2;Console.WriteLine("o={0}  o2={1}", o, o2);string str1 = "Hello";string str2 = str1;str1 = "Hello,World!";Console.WriteLine("str1={0}  str2={1}", str1, str2);Console.ReadKey();
View Code

 

结果:member1.Name=John member2.Name=John

   o=2 o2=1  以及str1=Hello,World! str2=Hello 

原因:object,string 重新赋值的时候,堆会重新分配一个对象。

根本原因:运算符重载。=重载:重新在堆中复制一个对象,并将新的引用赋值给改变的值。

 

转载于:https://www.cnblogs.com/housh/p/4700735.html

你可能感兴趣的文章
在eclipse中设计BPMN 2.0工作流定义的根本步骤
查看>>
Json对象与Json字符串互转(4种转换方式)
查看>>
PAT甲级1002 链表实现方法
查看>>
查看Linux信息
查看>>
Python中sys模块sys.argv取值并判断
查看>>
【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)
查看>>
并查集
查看>>
ubuntu 11.04下android开发环境的搭建!
查看>>
Bzoj 3343: 教主的魔法
查看>>
括号序列(栈)
查看>>
一件趣事
查看>>
DevExpress控件TExtLookupComboBox实现多列模糊匹配输入的方法
查看>>
【动态规划】洛谷-过河卒
查看>>
linux环境下mysql 5.7.1X 如何重置root密码
查看>>
hdu 1007 Quoit Design(最近点对模板)
查看>>
php中strlen和mb_strlen的区别
查看>>
数据库【mongodb篇】练习操作
查看>>
第十二周学习进度
查看>>
淘宝网6个质量属性的场景分析:
查看>>
PJzhang:kali linux安装网易云音乐、Visual Studio Code、skype
查看>>