C#语言-02.数据类型
a. 数据类型
i. 值类型:是一种由类型的实际值表示的数据类型,存储在栈内的存储空间中,由于编译器编译后将源代码中的值类型变量直接对应到唯一的存储空间上,直接访问该存储空间,故值类型的数据具有较快地存取速度。
. 数值类型:继承于 Object ,所有类型都隐含地声明了一个公共的无参数的构造函数,称为“默认构造函数”,默认构造函数返回一个初始值为零的实例。
a. 整数:支持 种整型 sbyte、short、byte、ushort、int、uint、long、ulong,这 类型通过其占用存储空间的大小以及是否有符号来存储不现极值范围的数据。
b. 浮点数:支持 种浮点数类型:float 和 double,两种差别在于取值范围和精度不同。double 的精度大于 float
c. 小数:十进制的类型:decimal ,decimal 的精度最高,与浮点类型之间不存在隐式或显示转换
. 布尔类型(bool):用来表示“真(true)”和“假(false)”两个概念的,与其他类型之间不存在任何转换
. 字符类型(char):包括数字字符、英文字符、表达式符号等,按照国际公认的标准,采用 Unicode 字符集,使用时用“单引号('')”表示
. 结构类型(struch):是一组相关信息组合成的单一实体
a. 作用:通常用于表示较为简单或者较少的数据,其实际应用意义在于使用结构类型可以节省使用类和内存的占用,因为结构类型没有如同类对象所需的大量额外的引用
. 枚举类型(eunm):是由一组特定的常量构成的一种数据结构,系统把相同类型、表达固定含义的一组数据作为一个集合放到一起形成新的数据类型
a. 注意:为枚举类型的元素所赋值的类型限于 long、int、short、byte 等整数类型
b. 与结构类型的区别:结构类型的变量值是由各个成员的值组合而成的,而枚举类型的变量在某一时刻只能取枚举中某一个元素的值
ii. 引用类型:引用类型的数据并不驻留在栈内存中,而是存储于堆内存中,即是在堆内存中分配内存空间直接存储所包含的值,而在栈内存中中存放定位到存储具体值的索引。当访问一个具有引用类型的数据时,需要到栈内存中检查变量的内容,而该内容指向堆中的一个实际数据。
. 类类型:类是创建对象的模板
a. 语法:访问修饰符 class 类名{ //类的主体 }
b. 方法:用来描述类的行为
i. 语法:访问修饰符 返回类型 方法名(参数列表){ //方法的主体 } a. 属性:用来描述类的特征
a. 对象类型:对象是类的一个具体实例,万物皆对象
a. 字符串类型(String):是字符类型的集合,继承于 Object 类,使用时用“双引号("")”表示
a. 数组类型:是包含若干个相同类型数据的集合,数组的数据类型可以是任何类型
i. 一维数组:数组的维数决定了相关数组元素的下标数,一维数组只有一个下标
. 声明:数组类型[] 数组名;
. 两种初始化方式:
a. 在声明数组时进行初始化,如:int[] array={,,,};
b. 使用 new 关键字进行初始化,第一个下标为0,如:int[] array= new int[]{,,,}; array[]=;
ii. 多维数组:
. 声明:如二维数组是“数组类型[,] 数组名;”,三维数组是“数组类型[,,] 数组名;”
. 例子说明:定义一个二维数组 int[,] array={{,},{,},{,}} ,那么 array[,] = ;
b. 接口类型
c. 代理类型
a. 数据类型转换
i. 隐式转换:对于任何数值类型A,只要其取值范围完全包含在类型B 的取值范围内,就可以隐式转换为类型B,也就是说,int 可以转成float或double,float也可 以转换成double
ii. 显式转换:取值范围大的类型转换为取值小范围小的类型,如:double 转为 int
iii. Parse()方法:将字符串类型转换为数值类型
iv. Convert类:任何基本类型之间的相互转换,如:Convert.ToInt32() 转换为整型等方法
v. 装箱:是指将值类型转换为引用类型的过程,具体操作为:首先分配一个对象实例,然后将值类型的值复制到该实例中,装箱前后不是同一个实例,对于引用类型来说,装箱前后都是同一个实例
vi. 拆箱:是指将引用类型转换为值类型的过程,具体操作为:拆箱之前,要先检查该对象实例是否给定值类型的一个装过箱的值,然后将值从实例中赋值出来
b. 值传递与引用传递的对比
i. 值传递:是将变量的值复制一份传递给方法,使用得该方法的形参和实参的值相同。在调用的方法中修改形参也只是对实参复制吕的数据作更新,并没有真正改变实参的值
ii. 引用传递:是将要传递的对象的引用复制给方法的形参,使得被调用的方法直接对引用对象进行更改,会影响实参原来的值
a. 引用类型作为参数传递,其值的修改将会保留。以引用方式传递值类型的数据,其值的修改也将会保留,直接传递值类型数据,对它的修改不会被保留
b. 静态成员:是一种特殊的成员,不属于类的某一个具体的实例,特点:在第一次访问类前被初始化,直到程序退出才会释放,对于类的所有实例来说都是唯一的
i. 语法:Class 类名{
public static 数据类型 变量名;
public 返回值 方法名 (参数列表){ //方法体 }
}
a. 只能由该类的类名来访问
b. 只能调用静态成员
C#语言-02.数据类型的更多相关文章
- C语言02
C语言02 1.2 C语言与C程序 1.计算语言 语言发展 机器语言:机器语言是机器能直接识别的程序语言或指令代码,勿需经过翻译,每一操作码在计算机内部都有相应的电路来完成它,或指不经翻译即可为机器直 ...
- 谈谈C语言的数据类型
本文摘要: 本文主要讲述C语言中的数据类型,从基本的数据类型到派生的数据类型,从int ,char ,float double ....到指针,数组,函数,指向指针的指针,指向数组的指针,指向函数的指 ...
- C语言的数据类型
复习之余,做点笔记<C语言之数据类型> 一.整数数据类型 (1)整数数据类型 整数类型 char 字符型变量 1字节(8Bit) short 短整型 2字节(16Bit) i ...
- C语言中数据类型的取值范围
C语言中数据类型的取值范围如下:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 ...
- 初识 go 语言:数据类型
目录 数据类型 指针 结构体 数组 切片 切片的方法 映射 函数闭包 结束语 前言: go语言的第三篇文章,主要讲述go语言中的数据类型,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示 ...
- c语言基础:数据类型 分类: iOS学习 c语言基础 2015-06-10 21:43 9人阅读 评论(0) 收藏
C语言基本数据类型大体上分为: 整型 和 浮点型 字节: 计算机中最小的储存单位 1 Byte = 8 bit 整型: int 4 ...
- 「C语言」数据类型及混合运算与类型转换
深入学习C语言时,有必要先了解一下数据类型的概念,以及它们之间的混合运算与类型转换. 本篇文章便是根据<C语言程序设计教程>和在线翻阅资料后整理而出.(练习题将逐步更新) 目录: ...
- Go语言基本数据类型(四)
Go语言基本数据类型主要包含:bool,number,string 布尔类型 go中的布尔类型,只能是 true 和 false,例如:var b bool = true 数字类型 整型 类型 描述 ...
- C语言基本数据类型大小
C语言基本数据类型占用的字节数可以通过如下例子获取: #include<stdio.h> int main(void) { printf("char size=%d \n&quo ...
随机推荐
- React杂篇(1) -- 打包发布注意事项
打包后资源路径 问题:直接打包会出现一下情况: 方式一: package.json文件下加入homepage字段 { "name": "wap-v2", &qu ...
- Mysql导入数据时-data truncated for column..
在导入Mysql数据库时,发现怎么也导入不进去数据,报错: 查看表定义结构:可以看到comm 定义类型为double类型 原来是因为数据库文件中: 7369 smith clerk ...
- request对象常用方法
String getParameter(String name)根据表单组件名称获取提交数据 Sring[] getParameterValues(String name)获取表单组件对应多个值时的请 ...
- 17、OpenCV Python 数字验证码识别
__author__ = "WSX" import cv2 as cv import numpy as np from PIL import Image import pytess ...
- 线段树(压位)luogu P1558色板游戏
题目背景 阿宝上学了,今天老师拿来了一块很长的涂色板. 题目描述 色板长度为L,L是一个正整数,所以我们可以均匀地将它划分成L块1厘米长的小方格.并从左到右标记为1, 2, ... L. 现在色板上只 ...
- SDUT OJ 顺序表应用3:元素位置互换之移位算法
顺序表应用3:元素位置互换之移位算法 Time Limit: 1000 ms Memory Limit: 570 KiB Submit Statistic Discuss Problem Descri ...
- TX2中设备树烧写
将要修改的设备树文件拷贝到下面的目录替换相应的文件 ../64_TX2/Linux_for_Tegra_tx2/kernel/dtb 用micro-USB线连接TX2上的USB OTG口和PC机的US ...
- 关于Apache显示port 80 in use 无法解决的情况,这个世界对程序媛太不友好了
学到Ajax时下载了Apache,百度的安装教程,配置文件参数分别是: 1. httpd.conf里的80改为8000或者其他的,共三处(用记事本打开,按ctrl+F找方便) 2. httpd-ssl ...
- django中的setting最佳配置小结
Django settings详解 1.基础 DJANGO_SETTING_MODULE环境变量:让settings模块被包含到python可以找到的目录下,开发情况下不需要,我们通常会在当前文件夹运 ...
- 【转】idea中applicationContext-trans.xml中的Cannot resolve bean 'dataSource'...的问题解决
问题如下: (applicationContext-trans.xml中的部分截图) 先了解问题是怎么出现的: 此处的dataSource是在applicationContext-dao.xml中配置 ...