目录
预定义类型
为了后面能更好的描述变量、常量的同时,方便读者更加清晰的了解示意代码的含义。这里先在讲述 变量&常量,运算符&表达式、程序流程结构之前,本章会讲述 预定义类型。
如图:
图1.1
1.简单类型
下图为预定义简单类型取值范围:
图1.2
1.1整数类型
- 整数类型的整数范围由小到大为:sbyte short int long。
- 整数类型前面的“u”是unsigned(无符号)的缩写,其含义是不能在这些类型的变量中存储负数。
1.2浮点类型
-
浮点类型分为单精度浮点型(float、32位、默认值0.0f)和双精度浮点型(double、64位、默认值0.0d)
-
十进制类型(decimal、128位、默认值0.0m),与float和double相比,它具有更高的精度和更小的范围,适用于财务和货币的计算。
图示:
图1.3
1.3非数值类型
布尔类型(bool)
- 用于存储true和false。
- 可以直接赋值为true或false、也可以赋值为计算结果为true或false的表达式。
如图:
图1.4
字段类型(char)
- 字段类型(char、16位、默认值为\0)
- 作用是定义字符型变量(单个或是字符串)
图1.5
2.预定义非简单类型
2.1 object
- object(System.Object)是所有其他类型的基类(父类),所有类型都可以向上转换为object。
- object是引用类型,但值类型可以转换为object,反之亦然。
2.2 string字符串类型
- string(System.String)是由零个或多个Unicode字符组成的不可变序列。
- 可以通过“[ ]”运算符访问string中的每个字符。
- string为引用类型,string本身的变量在栈中,其值在堆中。
- string类型具有不可变性,如下图。
如图,我们可以看见string不会修改数据内容,而是直接改变栈中的内存地址:
图1.6
2.3 dynamic
- 在使用动态语言(注释1)编写的程序集时使用。
注释
- 静态语言与动态语言的区别:静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。 例如:C++、Java、Delphi、C#等。 动态语言是在运行时确定数据类型的语言。