(一)显示类型转换
1.溢出检查
迫使系统特别注意运行期间的转换,对于为表达式设置所谓的溢出检测上下文,需要用到两个关键字checked和unchecked。
格式:
checked(<expression>)
unchecked(<expression>)
2.使用Convert命令进行显示转换
总是要进行溢出检测,checked和unchecked关键字以及项目属性设置不起作用。
特别地,两个short值相乘的结果是int值。
(二)复杂的变量类型
1.枚举
枚举允许定义一个类型,其取值范围是用户提供的值的有限集合。
定义枚举:
enum<typeName>
{
<value1>,
<value2>,
<value3>,
...
<valueN>
)
接着声明这个新类型的变量:
<typeName> <varName>;
并赋值:
<varName>=<typeName>,<value>;
枚举类型使用一个基本类型来存储。枚举类型可取的每个值都存储为该基本类型的一个值,默认情况下该类型为int。在枚举声明中添加类型,就可以指定其他基本类型:
enum<typeName>:<underlyingType>
{
<value1>,
<value2>,
<value3>,
...
<valueN>
}
枚举的基本类型可以是byte,sbyte,short,ushort,int,uint,long和ulong。
默认情况下,每个值都会根据定义的顺序(从0开始),自动被赋予对应的基本类型值。
还可以使用一个值作为另一个枚举的基础值,为多个枚举指定相同的值。
未赋值的任何值都会自动获得一个初始值,这里使用的值是从比上一个明确声明的值大1开始的序列。
类型转换:
1).把枚举值转换为其他类型
必须使用显式转换。
2).把其他类型转换成枚举值
必须使用显式转换。
3).获得枚举的字符串值
可使用Convert.ToString()。
可以使用变量本身的ToString()命令。
4).把string转换成枚举值
可以使用Enum.Parse()
用法:(enumerationType)Enum.Parse(typeof(enumerationType),enumerationValueString);
2.结构
每个成员的声明都采用如下形式:
<accessibility> <type> <name>;
3.数组
1).声明数组
<baseType>[] <name>
初始化:
以字面值形式指定数组 的完整内容。
指定数组的大小,再使用关键字new初始化所有数组元素,默认值为0,如果使用变量定义其大小,该变量必须是一个常量。
2).foreach循环
3).多维数组
声明数组:
<baseType>[,] <name>;
4).数组的数组(锯齿数组)
声明:
<baseType>[][] <name>;
初始化:
可以初始化包含其他数组的数组,然后依次初始化子数组。
使用字面值赋值的一种改进形式,如:
jaggedIntArray=new int[3][] {new int[]{1,2,3},new int[]{1},new int[]{1,2}};
int [][] jaggedIntArray={new int[]{1,2,3},new int[]{1},new int[]{1,2}};
可以对锯齿数组使用foreach循环,但通常需要使用嵌套的foreach循环才能得到实际数据。
(三)字符串的处理
string类型的变量可以看作char变量的只读数组。
为获得一个可写的char数组,可以使用数组变量的ToCharArray()命令:
string myString="A string";
char[] myChars=myString.ToCharArray();
myString.Length获取元素个数。
<string>.ToLower()把字符串转换为小写形式
<string>.ToUpper()把字符串转换为大写形式
<string>.Trim()删除字符串前后的空格
<string>.TrimStart()删除字符串前面空格
<string>.TrimEnd()删除字符串后面空格
<string>.PadLeft()在字符串左边添加空格,使字符串达到指定长度
<string>.PadRight()在字符串右边添加空格,使字符串达到指定长度
可以按第二种方式使用<string>.PadLeft()和<string>.PadRight(),即提供要添加到字符串上的字符。