博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中数据类型— 04
阅读量:2145 次
发布时间:2019-04-30

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

一、值类型与引用类型

1、 C#中变量的类型分为两种:值类型和引用类型

(1)、

  • 值类型的变量直接存储它们自己的值,有:整型、浮点型、字符型、布尔类型、:byte,short,int,long,float,double,decimal,char,bool 、enum、 struct   均为值类型。值类型变量声明后,不管是否已经赋值,编译器为其分配内存。其存储在栈中。
  • class、string、委托、数组、接口的类型 均为引用类型。在声明引用类型的变量时,该变量的值为 null。需要使用 new 运算符显式创建对象的实例,或者为该变量分配已经在其他位置使用new 创建的对象时,该引用对象的值发生变化。其存储在堆中。

(2)、区别总结

  • 值类型存储在内存的栈中,引用类型存储在内存的堆中
  • 值类型存取速度快,引用类型存取速度慢
  • 值类型表示实际的数据,引用类型表示指向内存堆中的指针或者引用
  • 值类型继承自System.ValueType,引用类型继承自System.Object
  • 栈的内存分配自动释放;而堆在C#中需要GC释放
  • 引用类型需要两段内存:第一段存储实际数据,它位于堆中;第二段是一个引用,指向数据在堆中存放位置。

     

2、栈和堆

  • 栈内存小,但是读取速度快。一般是从栈顶加入元素和删除元素。
  • 堆内存大,存放比较自由,但速度慢

 

3、注意

  • C# 中 bool 类型不能转换成 int 
  • C# 中在不安全的上下文中可以定义指针类型,具体参考

     

 

 

 

 

 

转载地址:http://usegf.baihongyu.com/

你可能感兴趣的文章
PHPunit+Xdebug代码覆盖率以及遇到的问题汇总
查看>>
PHPUnit安装及使用
查看>>
PHP项目用xhprof性能分析(安装及应用实例)
查看>>
composer安装YII
查看>>
Sublime text3快捷键演示
查看>>
sublime text3 快捷键修改
查看>>
关于PHP几点建议
查看>>
硬盘的接口、协议
查看>>
VLAN与子网划分区别
查看>>
Cisco Packet Tracer教程
查看>>
02. 交换机的基本配置和管理
查看>>
03. 交换机的Telnet远程登陆配置
查看>>
微信小程序-调用-腾讯视频-解决方案
查看>>
phpStudy安装yaf扩展
查看>>
密码 加密 加盐 常用操作记录
查看>>
TP 分页后,调用指定页。
查看>>
Oracle数据库中的(+)连接
查看>>
java-oracle中几十个实用的PL/SQL
查看>>
PLSQL常用方法汇总
查看>>
几个基本的 Sql Plus 命令 和 例子
查看>>