C# 基础 学习 之 数据类型
2016-01-14 23:23
531 查看
首先 要知道 C# 的 基础 数据类型 并没有 内置于 C# 的语言中,而是内置于 。net Framework 中的,
当我们 声明 一个 类型时,例如(int),实际是 得到的 一个 。net结构System.Int32的一个实例。因为 net 支持 多种 语言的 编码(跨语言),他们最终 会 转化成 中间语言 IL; 这样的好处有
1. 确保了 强制 类型 安全
2. 实现了 不同语言的 交互性
3. 所有数据 都是对象, 所以 有属性 ,有 方法, 比如 把 一个字符串 “123” 转成 数字 123 则 Convent.toint32(123);
C# 中 存在两种 数据类型 值 类型, 引用 类型
引用类型和值类型都继承自Systerm.Object类。不同之处,几乎所有的引用类型都是直接从Systerm.Object继承,而值类型则是继承Systerm.Object的子类Systerm.ValueType类
内存中 的 堆和栈, 栈 中 存放着 值类型 和 引用 类型 , 值相当于 现金, 真实可用数据, 引用 相当于 存折 , 只是取现金的一个地址
![](http://images2015.cnblogs.com/blog/446953/201601/446953-20160116005850725-387292952.png)
装箱:是值类型转换为Object类型,或者转换为由值类型所实现的任何接口类型。把一个值类型的值装箱,也就是创建一个对象并把这个值赋给这个对象
拆箱:是从Object类型转换为值类型,或者是将一个接口类型转换为一个实现该接口的值类型
当我们 声明 一个 类型时,例如(int),实际是 得到的 一个 。net结构System.Int32的一个实例。因为 net 支持 多种 语言的 编码(跨语言),他们最终 会 转化成 中间语言 IL; 这样的好处有
1. 确保了 强制 类型 安全
2. 实现了 不同语言的 交互性
3. 所有数据 都是对象, 所以 有属性 ,有 方法, 比如 把 一个字符串 “123” 转成 数字 123 则 Convent.toint32(123);
C# 中 存在两种 数据类型 值 类型, 引用 类型
引用类型和值类型都继承自Systerm.Object类。不同之处,几乎所有的引用类型都是直接从Systerm.Object继承,而值类型则是继承Systerm.Object的子类Systerm.ValueType类
内存中 的 堆和栈, 栈 中 存放着 值类型 和 引用 类型 , 值相当于 现金, 真实可用数据, 引用 相当于 存折 , 只是取现金的一个地址
![](http://images2015.cnblogs.com/blog/446953/201601/446953-20160116005850725-387292952.png)
装箱:是值类型转换为Object类型,或者转换为由值类型所实现的任何接口类型。把一个值类型的值装箱,也就是创建一个对象并把这个值赋给这个对象
拆箱:是从Object类型转换为值类型,或者是将一个接口类型转换为一个实现该接口的值类型
相关文章推荐
- 【转】(C#)OPC客户端源码
- C# 基础学习 之 深复制和浅复制
- C#实现拖放获取文件路径
- Win7下Visual Studo 2010安装图解教程
- C#一探究竟——枚举
- C#中winform窗体常用设置
- vs2012 c# winform installshield 打包
- C#实现字符串RSA加密与解密算法
- C#改动文件或目录的权限,为指定用户、用户组加入全然控制权限
- C# .NET web 实现邮件发送
- C#基础回顾(二)—页面值传递、重载与重写、类与结构体、装箱与拆箱
- C#:VS中遇到的奇怪问题
- C#DateTime的用法
- c# ?
- C#正则表达式开源工具,为.net开源绵尽薄力
- C#中Main函数为什么要static
- 基于C#的两种图片旋转方法
- C# WinForm开发中使用XML配置程序
- C# 类扩展方法
- c# 获取iis地址