3.4 变量
知识点讲解:光盘:视频\PPT讲解(知识点)\第3章\变量.mp4
数据是C#体系中的必备元素,就像人人都有目标一样,是必不可少的!C#中的数据分为变量和常量两种。通过C#变量可以影响到应用程序中数据的存储,因为数据可以被存储在变量中。在编程语言中,变量是内存地址的名称。变量包括名称、类型和值3个主要元素。各元素的具体说明如下。
- 变量名:变量在程序代码中的标识。
- 变量类型:决定其所代表的内存大小和类型。
- 变量值:变量所代表内存块中的数据。
在本节的内容中,将对C#变量的基本构成进行简要介绍。
3.4.1 C#的类型
因为C#支持.NET框架定义的类,所以C#的变量类型是用类来定义的,即所有的类型都是类。C#类型的具体说明如表3-1所示。
由表3-1可以看出,C#变量的常用类型有引用类型和值类型两大类。
表3-1 C#类型信息
类 型 |
描 述 |
|
---|---|---|
值类型 |
简单类型 |
符号整型:sbyte,shote,int,long |
无符号整型:byte,ushort,uint,ulong |
||
Unicode字符:char |
||
浮点型:float,double |
||
精度小数:decimal |
||
布尔型:bool |
||
枚举类型 |
枚举定义:enum name{} |
|
结构类型 |
结构定义:Stroct name{} |
|
引用类型 |
类类型 |
最终基类:object |
字符串:string |
||
定义类型:class name |
||
接口类型 |
接口定义:interface |
|
数组类型 |
数组定义:int[] |
|
委托类型 |
委托定义:delegate name |
1.引用类型
引用类型是C#的主要类型,在引用变量中保存的是对象的内存地址。引用类型具有如下5个特点。
- 需要在委托中为引用类型变量分配内存。
- 需要使用new运算符创建引用类型的变量,并返回创建对象的地址。
- 引用类型变量是由垃圾回收机制来处理的。
- 多个引用类型变量都可以引用同一对象,对一个变量的操作会影响到另一个变量所引用的同一对象。
- 引用类型变量在被赋值前的值都是null。
在C#中,所有被称为类的变量类型都是引用类型,包括类、接口、数组和委托。具体说明如下。
- 类类型:功能是定义包含数据成员、函数成员和嵌套类型的数据结构,其中的数据成员包括常量和字段,函数成员包括方法、属性和事件等。
- 接口:功能是定义一个协定,实现某接口的类或结构必须遵循该接口定义的协定。
- 数组:是一种数据结构,包含可通过计算索引访问的任意变量。
- 委托:是一种数据结构,能够引用一个或多个方法。
2.值类型
如果程序中只有引用类型,那么往往会影响整个程序的性能,而值类型的出现便很好地解决了这个问题。值类型是组成应用程序的最为常见的类型,功能是存储应用数值。例如,通过一个名为mm的变量存储数值100,这样在应用时只需调用变量名mm,即可实现对其数值100的调用。
值类型的主要特点如下。
- 值类型变量被保存在堆栈中。
- 在访问值类型变量时,一般直接访问其实例名。
- 每个值类型变量都有本身的副本,所以对一个值类型变量的操作不会影响到其他变量。
- 在为值类型变量赋值时,赋值的是变量的值,而不是变量的地址。
- 值类型变量的值不能是null。
- 值类型是从System.ValueType类中继承的,包括结构、枚举和大多数的基本类型。具体说明如下。
- 结构类型:功能是声名常量、字段、方法和属性等。
- 枚举类型:是具有命名常量的独特类型,每个枚举类型都有一个基础的类型,是通过枚举来声名的。
除了值类型和引用类型外,在C#中通常用基本类型来表示常用的数据类型。基本类型是编译器直接支持的类型。基本类型的命名都使用关键字,它是构造其他类型的基础。其中值类型的基本类型通常被称为简单类型,例如下面的代码声名了int类型的变量。
int mm=123;
下面将详细介绍常用的基本类型。
- 整型
在C#中定义了8种整型,具体说明如表3-2所示。
表3-2 C#整型信息
类 型 |
允许值的范围 |
---|---|
sbyte |
−128~127的整数 |
byte |
0~255的整数 |
short |
−32768~32767的整数 |
ushort |
0~65535的整数 |
int |
−2147483648~2147483647的整数 |
uint |
0~4294967295的整数 |
long |
−9223372036854775808~−2147483647的整数 |
ulong |
0~18446744073709551615的整数 |
注意:某变量前的字符“u”表示不能在此变量中存储负值。
- 浮点型
浮点型包括float和double两种,具体说明如表3-3所示。
表3-3 C#浮点型信息
类 型 |
允许值的范围 |
---|---|
float |
IEEE 32位浮点数,精度是7位,取值范围为1.5×10−45~3.4×1038 |
double |
IEEE 64-bit浮点数,精度是15到16位,取值范围为50×10−324~1.7×10308 |
- 布尔型
布尔型有两个取值,分别是true和false,即代表“是”和“否”的含义。
- 字符型
字符型的取值和Unicode的字符集相对应,通过字符型可以表示世界上所有语言的字符。字符型文本一般用一对单引号来标识,例如’MM’和’NN’。
使用字符型的转义字符可以表示一些特殊字符,常用的转义字符如表3-4所示。
表3-4 C#转义字符列表
转 义 字 符 |
描 述 |
---|---|
\’ |
转义单引号 |
\’’ |
转义双引号 |
\\ |
转义反斜杠 |
\0 |
转义空字符 |
\a |
转义感叹号 |
\b |
转义退格 |
\f |
转义换页 |
\n |
转义新的行 |
\r |
转义回车 |
\t |
转义水平制表符 |
\v |
转义垂直制表符 |
\x |
后面接2个二进制数字,表示一个ASCII字符 |
\u |
后面接4个二进制数字,表示一个ASCII字符 |
- decimal型
decimal型是一种高精度的、128位的数据类型,常用于金融和货币计算项目。decimal型表示28或29个有效数字,取值范围为±1.0×10−28~7×1028。
- string型
string型用来表示字符串,常用于文本字符的代替,是字符型对象(char)的连续集合。string型的字符串值一旦被创建,就不能再修改,除非重新赋值。string型的变量赋值需要用双引号括起来,例如下面的代码。
string mm="管西京";
另外,string型的变量之间可以使用“+”进行连接。例如,下面的代码将输出“你好,人民邮电出版社!”。
string mm="你好";
string nn=",";
string zz="人民邮电出版社";
string ff="!";
string jieguo=mm+nn+zz+ff;
Console.WriteLine(jieguo);
注意:使用“+”也可以连接不同数据类型的字符串。例如,下面的代码将输出“你好,123!”。
string mm="你好";
string nn=",";
int zz=123;
string ff="!";
string jieguo=mm+nn+zz+ff;
Console.WriteLine(jieguo);
- object型
object型是C#的最基础类型,它可以表示任何类型的值。
3.4.2 给变量命名
在C#中不能给变量任意命名,命名时必须遵循如下两个原则。
- 变量名的第一个字符必须是字母、下划线或@。
- 第一个字符后的字符可以是字母、下划线或数字。
另外,还需要特别注意C#编译器中的关键字,例如关键字using。如果错误地使用了编译器中的关键字,则程序将会出现编译错误。
共有条评论 网友评论