1.值类型
值类型包括简单值类型和复合型类型。简单值类型可以再细分为整数类型、字符类型、实数类型和布尔类型;而复合类型则是简单类型的复合,包括结构(struct)类型和枚举(enum)类型。
整数类型
数据类型 说明 取值范围 对应于System程序集中的结构
sbyte  有符号8位整数 -128-127 SByte
byte 无符号8位整数 0-255 Byte
short 有符号16位整数 -32768-32767 Int16
ushort 无符号16位整数 0-65535 UInt16
Int 有符号32位整数 -2147489648-2147483647 Int32
uint 无符号32位整数 0-42994967295 UInt32
long 有符号64位整数 -263-263 Int64
ulong 无符号64位整数 0-264 UInt64

字符类型
C#中采用Unicode字符集来表示字符类型。
实数类型
数据类型 说明 取值范围
float 32位单精度实数 1.5*10-45-3.4*1038
double 64位双精度实数 5.0*10-324-1.7*10308
demcimal 128位十进制实数 1.0*10-28-7.9*1028

布尔(bool)类型
取值只能是ture或者false,bool类型对应于.NET类库中的System.Boolean结构。它在计算机中占4个字节,即32位存储空间。
结构类型
把一系列相关的信息组织成为一个单一实体的过程,这就是创建一个结构的过程。
struct person
{
string m_name; //姓名
int m_age; //年龄
string m_sex; //性别
}
枚举类型
主要用于表示一个逻辑相关联的项和组合。使用关键字enum来定义。
enum Weekday
{
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
}
2.引用类型
引用类型包括类(class)、接口(interface)、委托(delegate)和数组(array)。
类(class)
类是一组具有相同数据结构和相同操作的对象集合。创建类的实例必须使用关键字new来进行声明。
(重点)类和结构之间的根本区别在于:结构是值类型,而类是引用类型。对于值类型,每个变量直接包含自身的所有数据,每创建一个变量,就在内存中开辟一块区域;而对于引用类型,每个变量只存储对目标存储数据的引用,每创建一个变量,就增加一个指向目标数据的指针。
接口(interface)
应用程序之间要相互调用,就必须事先达成一个协议,被调用的一方在协议中对自己所能提供的服务进行描述。在C#中,这个协议就是接口。接口定义中对方法的声明,既不包括访问限制修饰符,也不包括方法的执行代码。
(注意)如果某个类继承了一个接口,那么它就要实现该接口所定义的服务。也就是实现接口中的方法。
委托
委托用语封装某个方法的调用过程。
委托的使用过程分为3步:
1.定义 delegate void HelloDelegate();
2.实例化 HelloDelegate hd = new HelloDelegate(p1.Say); //p1.Say调用的方法
3.调用 hd();
数组
数组主要用于同一数据类型的数据进行批量处理。在C#中,数组需要初始化之后才能使用。
如:int[] array1 = new int[3]{2,3,5};
int[] array1 = {2,3,5};
(注意)对规则多维数组,调用Length属性所得的值为整个数组的长度;而调用其GetLength方法,参数为0时得到数组第1维的长度,为1时得到数组第2维的长度,以此类推。而对于不规则多维数组,调用Length属性和以0为参数调用其GetLength方法,得到的都是第一维的长度。
3.类型转换
数值转换
数值的转换有一个原则,即从低精度类型到高精度类型通常可以进行隐式转换;而从高精度类型则必须进行显式转换。
如:int i = 100;
long j = 1000;
j = i; //隐式转换,由低精度到高精度的转换
i = (int)j; //显式转换,有高精度到底精度的转换
具体转换过程中信息的丢失就看各数据类型的精度了。(可以参考上面数据类型)
枚举转换
枚举类型与其他任何类型之间不存在隐式转换。而和枚举类型相关的显式转换包括:
1.从所有整数类型(包括字符类型)和实数类型到枚举类型的显式转换;
2.从枚举类型到所有整数类型(包括字符类型)和实数类型的显式转换;
3.从枚举类型到枚举类型的显式转换。
装箱和拆箱转换
主要是值类型与引用类型之间相互转换。
如:object obj 1= 10;
int i = (int)obj; //拆箱
int j = 100;
object obj2 = j; //装箱
转换检查
如果出现转换失败,程序就会抛出一个System.InvalidCastException异常

本文出自 51CTO.COM技术博客

转载于:https://blog.51cto.com/yaozefeng/329102

C#学习笔记---数据类型相关推荐

  1. Redis学习笔记 - 数据类型与API(1)Key

    Redis学习笔记 - 数据类型与API(1)Key Key相关命令 1. 常用命令 命令 含义 时间复杂度 keys 查找所有符合给定模式 pattern 的 key O(N), N 为数据库中 k ...

  2. Python3学习笔记-数据类型和变量

    有C++基础,一直对"万能"的Python语言感兴趣,目前正在学习廖雪峰老师的Python3教程和其他资料用来入门,这里记录一些没接触过或与C++有差异的知识,方便自己查阅吧~ 字 ...

  3. C语言学习笔记-数据类型

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 C语言数据类型 一.编程规范 1.1代码缩进 1.2变量.常量命名规范 1.3函数的命名规范 1.4注释 二.关键字 2.1 32个关 ...

  4. Python学习笔记--数据类型

    Python数据类型 数据类型 操作符 数值运算函数 字符串类型 字符串操作符 字符串处理函数 字符串处理方法 字符串类型的格式化 time库的使用 时间获取 时间格式化 程序计时 实例(文本进度条) ...

  5. mysql timdir_MYSQL学习笔记——数据类型

    mysql的数据类型可以分为三大类,分别是数值数据类型.字符串数据类型以及日期时间数据类型. 数值数据类型 数值类型又可以分为整型.浮点类型.Decimal. 整型 mysql的整型可以分为TINYI ...

  6. TIA博途S7-1200学习笔记——数据类型

    目录 一. 概述 二. 基本数据类型 1 二进制数 1.1 BOOL(位) 1.2 BYTE 1.3 WORD 1.4 DWORD 1.5 LWORD 2 整数 2.1 SINT 2.2 USINT ...

  7. JavaScript学习笔记|数据类型——Object类型、for in循环

    对象(object)是 JavaScript 语言的核心概念,也是最重要的数据类型.是一组数据和功能的集合. 创建对象实例 1.使用new操作符后跟Object构造函数 var person = ne ...

  8. int数据类型matlab,MATLAB学习笔记—数据类型

    数据类型(Datatypes) 同其他的编程语言一样,MATLAB也有许多的数据类型.下面我们来看看我们用过哪些数据类型. class(arg)可以返回arg的类型.如: >> class ...

  9. [rust学习笔记]数据类型

    我们将数据类型分为标量类型与复合类型. 标量类型 标量类型表示一个单一的值.Rust具有四种主要的标量类型:整数,浮点数,布尔值和字符. 整数类型: 长度 有符号 无符号 8位 i8 u8 16位 i ...

最新文章

  1. App Store兼容性问题
  2. Java Swing 树状组件JTree的使用方法【图】
  3. jsp重定向与请求转发的路径404问题
  4. easyui datagrid checkbox的相关属性整理
  5. oracle中将number类型毫秒值转为时间类型
  6. apue 2013-03-14
  7. 《实战突击.php项目开发案例整合》.(明日科技).[PDF]ckook
  8. 參加microsoft主管信息論壇
  9. [转载]C#时间函数
  10. hibernate自动配置_Hibernate自动冲洗的黑暗面
  11. Python-21-socket编程
  12. RedHat5 升级OpenSSH服务
  13. PHP验证码识别实例
  14. c语言刷屏函数的作用是什么,刷屏神器源码(C语言控制台版)【原创】
  15. 漂亮有创意的思维导图模板下载教程,教你思维导图怎么画
  16. CF#552div3题解
  17. 电脑显示RPC服务器不可用是什么意思,rpc服务器不可用怎么办?rpc服务器不可用是什么意思...
  18. Imagination利用精简操作集计算(ROSC)技术实现灵活、高性能的神经网络推理
  19. 【笔记总结】计算机系期末复习、专业课学习、算法与其他笔记
  20. 机器学习中使用的神经网络(六) --第二课

热门文章

  1. strong vs copy
  2. 超声和免疫学指标的特征能否反映RA临床缓解的表型?[EULAR2015_THU0121]
  3. hadoop面试题答案
  4. 国产木乃伊走进CTO编辑部
  5. [收藏]上班族的真实写照
  6. RocketMQ源码解析-PushConsumer(2)
  7. zookeeper专题:zookeeper集群模式下,leader选举流程分析
  8. 实战系列-使用Mybatis-Plus生成器生成代码
  9. mybatis入门基础(四)----输入映射和输出映射
  10. KVM中断虚拟化(一)