首页 > temp > 简明python教程 >
-
常见数据类型
关于数据类型 c#的类型一般分为值类型和引用类型两种,
值类型的变量包含类型的实例,值类型存放栈中
引用类型的变量包含对类型实例的引用,引用类型放在堆中,在栈中设置一个指针指向堆
值类型:
1.整数型数值:所有的整型数值类型均为值类型,可以用文本进行初始化,每个整型类型的默认值都是0,c#支持以下预定义的整型数值类型
sbyte 8位带符号整数,
byte 8位无符号整数,
short 16位带符号整数
ushort 16位无符号整数
int 32位带符号整数
uint 32位无符号整数
long 64位带符号整数
ulong 64位无符号整数
2.浮点型数值:所有浮点型数值均为值类型 ,可以使用文本进行初始化,每个整型类型的默认值都是0,c#支持以下预定义的浮点型数值类型
float 大约6-9位数字 4个字节
double 大约15-17位数字 8个字节
decimal 大约28-29位数字 16个字节
3.bool类型,它是一个布尔值,可为true和false
4.char类型,默认值是\0,即U+0000
5.enum 枚举类型,它是由整型数值类型的一组命名常量定义的值类型,枚举成员的关联常数值为int,从0开始,并按定义文本顺序递增1
6.结构类型 (stuct type;stucture type)是一种可封装数据和相关功能的值类型
7.可为空的值类型 ,T?表示其基础值类型T的所有值及额外的null 值。
引用类型:
1.内置引用类型
1.1:动态类型 dynamic ,表示变量的使用和对其成员的引用绕过编译时类型检查
1.2:对象类型 object,c#的统一类型系统中,所有的类型都是直接或间接从System.Object 继承的。
1.3:字符串类型 string ,表示0个或多个Unicode字符的序列。
1.4:委托类型 delegate 声明和方法签名相似
2.引用类型可以使用以下进行声明
2.1: class
2.2:Interface
2.3:可为null的引用类型
类型之间可以通过某种手段转换成另一种类型
类型转换分为
1.默认类型转换 无符号和有符号之间转换时,如果无符号的位数和有符号之间位数一致的话不能默认转换,所有整型均可默认转换为decimal
1.1 子类转换成父类时
1.2 短精度向高精度转换时(列:byte->int->long->float->double)
2.强制类型转换 数据类型判断 关键字 is,此关键字可以检测下是否可以转换为目标类型,
2.1 变量前加目标类型进行强制转换 失败时会抛错
2.2 使用as 关键字进行强制转换 失败时会设置为null