C#—数据类型
2015-09-09 17:54
260 查看
数据类型是学习一门编程语言的基础,更是优化数据结构、算法的基石。那么,C#中的数据类型有什么内容呢?
C#中的数据类型主要有两类,为值类型和引用类型,这是C#中最常用的两种数据类型,其次,C#是有指针数据类型的,但是指针类型只能在声明为不安全代码中使用。C#中数据类型如下:
![](http://img.blog.csdn.net/20150910165528389?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
值类型:
定义:表示实际数据,作为临时变量时,存储在栈内存中,作为成员变量,存储在堆内存中。
分类:分为两类,简单类型和复合类型:
(1)简单类型:包含整型、实数类型、字符型、布尔型。
1)整型:整数类型,即byte、short、int、long等整数类型。
2)实数类型:即其他语言中的浮点型,为带小数的类型。
3)字符型:即用单引号“ ‘ ”定义的内容就表示一个字符,如’A‘、’B‘等。
问:char型字符能否保存一个中文汉字?
由于C#使用的Unicode编码,每个字符为16位,所以一个汉字如’胡‘,是可以在C#中以一个字符保存的。
4)布尔型:布尔是一个数学家的名字,布尔型主要用来做逻辑判断,只有两种取值,true和false。
(2)复合类型:包含结构类型和枚举类型。
1)结构类型:我们利用简单类型可以解决平时常用的数据运算、文字处理,基本上够用,但是我们也会经常碰到一些复杂 的、复合的数据类型。比如,通信录中的记录可以包含联系人姓名、电话以及地址;学生信息可以包含学号、姓名、成绩等。如 果仍然按简单类型管理,每一条记录都要存放到三个不同的变量当中,这样工作量很大也不直观。那要怎么办呢?
这时候就可以用结构类型了。在实际生活中,我们把一组相关的信息放在一起,即将一系列相关变量组织成一个单一实体的过程,称为生成结构的过程。这个实体的类型就是结构类型,结构中的每一个变量为结构的成员。下面以学生为例,写一个结构如下:
![](http://img.blog.csdn.net/20150910171659617?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
注意:结构类型以struct声明,或许你认为结构像类一样,是能够包含数据成员和函数成员的数据结构,但是结构与类不同点在于,结构是值类型,不需要堆分配。
2)枚举类型:是一组已命名的数值常量,用于定义具有一组特定值的数据类型,表现形式是是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内,以关键字enum声明。
优点:因为这种变量取值只能为已经定义的一组值中的一个,可以有效地防止用户提供无效值,也使代码更加清晰。下面以星期设置为枚举类型为例:
![](http://img.blog.csdn.net/20150910172739302?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
引用类型
引用类型包括类、接口、数组。
1)类:了解类,首先要了解对象,对象是对客观事物的抽象,而类是对对象的抽象,所以说,类是一种抽象的数据类型。
2)接口:接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
接口可以理解为一种契约,这个契约规定:所有需要实现这个接口的类必须完成接口里面的方法。
3)委托:委托是针对方法而说的,顾名思义,委托就是把方法委托给其他元素去实现,联系实际,可以打一个比方,我委托小明去帮我买电影票,这就是我对于小明的一种委托。
对于委托和面向对象,我会单独分出一章来讲解,此处不再赘述。
指针
使用指针是有风险的,因为不及时删除的话会泄露内存信息,而及时删除又会显得非常麻烦。所以,C#中的指针类型只能在声明为不安全代码中使用。
C#中的数据类型主要有两类,为值类型和引用类型,这是C#中最常用的两种数据类型,其次,C#是有指针数据类型的,但是指针类型只能在声明为不安全代码中使用。C#中数据类型如下:
值类型:
定义:表示实际数据,作为临时变量时,存储在栈内存中,作为成员变量,存储在堆内存中。
分类:分为两类,简单类型和复合类型:
(1)简单类型:包含整型、实数类型、字符型、布尔型。
1)整型:整数类型,即byte、short、int、long等整数类型。
2)实数类型:即其他语言中的浮点型,为带小数的类型。
3)字符型:即用单引号“ ‘ ”定义的内容就表示一个字符,如’A‘、’B‘等。
问:char型字符能否保存一个中文汉字?
由于C#使用的Unicode编码,每个字符为16位,所以一个汉字如’胡‘,是可以在C#中以一个字符保存的。
4)布尔型:布尔是一个数学家的名字,布尔型主要用来做逻辑判断,只有两种取值,true和false。
(2)复合类型:包含结构类型和枚举类型。
1)结构类型:我们利用简单类型可以解决平时常用的数据运算、文字处理,基本上够用,但是我们也会经常碰到一些复杂 的、复合的数据类型。比如,通信录中的记录可以包含联系人姓名、电话以及地址;学生信息可以包含学号、姓名、成绩等。如 果仍然按简单类型管理,每一条记录都要存放到三个不同的变量当中,这样工作量很大也不直观。那要怎么办呢?
这时候就可以用结构类型了。在实际生活中,我们把一组相关的信息放在一起,即将一系列相关变量组织成一个单一实体的过程,称为生成结构的过程。这个实体的类型就是结构类型,结构中的每一个变量为结构的成员。下面以学生为例,写一个结构如下:
注意:结构类型以struct声明,或许你认为结构像类一样,是能够包含数据成员和函数成员的数据结构,但是结构与类不同点在于,结构是值类型,不需要堆分配。
2)枚举类型:是一组已命名的数值常量,用于定义具有一组特定值的数据类型,表现形式是是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内,以关键字enum声明。
优点:因为这种变量取值只能为已经定义的一组值中的一个,可以有效地防止用户提供无效值,也使代码更加清晰。下面以星期设置为枚举类型为例:
引用类型
引用类型包括类、接口、数组。
1)类:了解类,首先要了解对象,对象是对客观事物的抽象,而类是对对象的抽象,所以说,类是一种抽象的数据类型。
2)接口:接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
接口可以理解为一种契约,这个契约规定:所有需要实现这个接口的类必须完成接口里面的方法。
3)委托:委托是针对方法而说的,顾名思义,委托就是把方法委托给其他元素去实现,联系实际,可以打一个比方,我委托小明去帮我买电影票,这就是我对于小明的一种委托。
对于委托和面向对象,我会单独分出一章来讲解,此处不再赘述。
指针
使用指针是有风险的,因为不及时删除的话会泄露内存信息,而及时删除又会显得非常麻烦。所以,C#中的指针类型只能在声明为不安全代码中使用。
相关文章推荐
- C#日期格式化
- c#读取XML
- 一个突发性的误解C# 引用类型
- C#读写取Xml文件
- C#:Image与byte数组的相互转换
- C# MD5加密例子
- .NET C# 添加天气信息,…
- C#:struct的陷阱:无法修改“xxx”的返回值,因为它不是变量
- C#打印螺旋数组
- 记c#中构造函数中this的用法
- C#互斥体——Mutex
- C#中的变量类型
- c#枚举遍历(转换)
- C#版 Socket编程(最简单的Socket通信功能)
- 学习C#修饰符:类修饰符和成员修饰符
- 解决VS2012 WPF中“对类型“ ”的构造函数执行符合制定的绑定约束的调用时引发了异常。行号为“3”,行位置为“9””问题的过程
- C# Mutex对象的使用
- C#WebBrowser控件使用教程与技巧收集
- c#对于mutex互斥量的深入理解
- 刚刚接触C#