当前位置:嗨网首页>书籍在线阅读

07-其他运算符

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

5.1.5 其他运算符

C#中还有一些运算符不能简单归结到某个类型,下面对这些特殊的运算符进行讲解。

1.条件运算符

条件运算符(?:)是if…else的简化格式,它是三元运算符。三元运算符要求有三个操作数参与运算。格式为:

操作数1?操作数2:操作数3;

其中操作数可以为变量或者表达式。输出结果为:如果操作数1为“真”,输出操作数2;如果操作数1为“假”,输出操作数3。三元运算符的输出结果取决于“?”前面的操作数1。

【范例5-20】 条件运算符的使用。

(1)在Visual Studio 2013中新建C#控制台程序,项目名为“Operator20”。

(2)在Program.cs的Main 方法中输入以下代码(代码5-20.txt)。

01  int n;                                     //定义变量n
02  Console.WriteLine("条件运算符:");
03  Console.WriteLine("n=3>8 ? 3:8结果:n={0}", n = 3 > 8 ? 3 : 8);
04  Console.WriteLine("n=3<8 ? 3:8结果:n={0}", n = 3 < 8 ? 3 : 8);
05  Console.ReadLine();

【运行结果】

单击工具栏中的 按钮,即可在控制台中输出如下图所示的结果。

98.jpg

2.()运算符

()运算符用于指定操作数中的运算顺序和指定强制转换或类型转换。()运算符的使用范围非常广泛。如下所示。

01  int n;                //声明整型变量
02  double m=(1.6+1)*3;        
03  n=(int)m;             //()用于类型转换

3.点运算符

点运算符(.)用于访问数据结构的成员。前面列举的实例程序几乎都有应用。格式为:

数据结构.成员

如下所示。

01  System.Console.WriteLine("hello");
02  System.Console.ReadLine();

4.索引运算符

索引运算符([])用于数组、索引器和属性,也可用于指针。如数组类型是一种后跟[]的类型,如下所示,创建一个有10个元素的数组,若要访问数组的一个元素,则用方括号括起所需元素的索引。

01  int [] a = new int[10]; 
02  a[0] = a[1] = 1;

5.new运算符

new运算符用于创建一个新的类型实例。它有以下三种形式。

① 对象创建表达式,用于创建一个类类型或值类型的实例。

② 数组创建表达式,用于创建一个数组类型实例。

③ 代表创建表达式,用于创建一个新的代表类型实例。

例如,下面三个式子分别创建了一个对象、数组和代表实例。

01  class  N{}; N a=new N;
02  string [] M=new string[5];        
03  delegate  double L(int p);  L f=new L(2);

6.typeof运算符

typeof运算符用于获得系统原型对象的类型,也就是Type类型。Type类包含关于值类型和引用类型的信息。

【范例5-21】 typeof运算符的使用。

(1)在Visual Studio 2013中新建C#控制台程序,项目名为“Operator21”。

(2)在Program.cs的Main 方法中输入以下代码(代码5-21.txt)。

01 Type T= typeof(int);                  //获取引用类型的信息
02  Console.WriteLine("类型:{0}",T);     //输出结果
03  Console.ReadLine();

【运行结果】

单击工具栏中的 按钮,即可在控制台中输出如下图所示的结果。

100.jpg

7.checked和unchecked运算符

checked和unchecked运算符用于允许或者禁止对指定的运算进行检测,并指出相应的错误提示信息。

【范例5-22】 checked和unchecked运算符的使用。

(1)在Visual Studio 2013中新建C#控制台程序,项目名为“Operator22”。

(2)在Program.cs的Main 方法中输入以下代码(代码5-22.txt)。

01  byte  s=255;                        //获取引用类型的信息
02  checked
03  {
04    s+=2
05  }
06  Console.WriteLine(s.ToString());    //输出结果
07  Console.ReadLine();

【代码详解】

代码2~5行执行checked操作。byte数据类型只能包含0~255的数,所以s值的增量会导致溢出,由于使用了checked运算符,所以在运行程序时编译器会检查溢出错误,并给出错误提示。

用checked运算符可以检查程序中所有未标记代码的溢出。如果要禁止溢出,可以用unchecked运算符,代码如下。

01  short  s=255;                        //获取引用类型的信息
02  unchecked
03  {
04    s+=2;
05  }
06  Console.WriteLine(s.ToString());     //输出结果
07  Console.ReadLine();

【运行结果】

单击工具栏中的 按钮,即可在控制台中输出如下图所示的结果。

102.jpg 可以看出,程序运行时没有出现异常,但数据会丢失,因为byte数据类型最大为255,溢出的位会被丢掉,所以s变量得到的值是1。