C#中的表达式与运算符

什么是表达式?

  • 表达式是由运算符和操作数组组成的,运算符设置对操作数进行什么样的运算
  • 在C#中,如果表达式最终的计算结果为所需的类型值,表达式就可以出现在需要自己或对象的任意位置

什么是运算符?

C#中的表达式与运算符_第1张图片

占位符

    static void Main(string[] args)
        {
            int i = 10;
            int j = 20;
            //占位符
            Console.WriteLine("{0}*{1}={2}", i, j, i * j);
            Console.ReadKey();

        }

以上代码中,i 对应的是0,j 对应的是1,而 i 与 j 的结果对应的是2
他们的显示结果如下图
在这里插入图片描述

  • 注意:从零开始的索引必须大于或等于零,且小于参数列表大小

以下代码为C#中的运算符与占位符实践:

  static void Main(string[] args)
        {
            int i = 10;
            int j = 20;
            //占位符
            Console.WriteLine("{0}*{1}={2}", i, j, i * j);
            Console.WriteLine("{0}+{1}={2}", i, j, i + j);
            Console.WriteLine("{0}-{1}={2}", i, j, i - j);
            Console.WriteLine("{0}/{1}={2}", i, j, i / j);
            Console.WriteLine("{0}%{1}={2}", i, j, i % j);

            Console.ReadKey();

        }

显示结果为:
C#中的表达式与运算符_第2张图片

region 和 endregion 是外部代码 用途如下:

C#中的表达式与运算符_第3张图片
使用后可以浓缩为下图:
C#中的表达式与运算符_第4张图片

什么是赋值运算符?

  • 赋值运算符为变量,属性,事件等元素赋新值。赋值运算符的左操作数必须为变量,属性访问,索引器访问或事件访问类型的表达式,如果赋值运算符两边的操作数的类型不一致,就需要首先进行类型的转换。然后再赋值。
    在使用赋值运算符时,右操作表达数所属的类型必须可隐式转换为左操作数所属的类型,运算将右操作数的值赋值给左操作数指定的变量,属性或索引器元素。
    C#中的表达式与运算符_第5张图片
  • 运算符实例如下代码
        static void Main(string[] args)
        {
            #region 算数运算符和占位符
            //int i = 10;
            //int j = 20;
            ////占位符
            //Console.WriteLine("{0}*{1}={2}", i, j, i * j);
            //Console.WriteLine("{0}+{1}={2}", i, j, i + j);
            //Console.WriteLine("{0}-{1}={2}", i, j, i - j);
            //Console.WriteLine("{0}/{1}={2}", i, j, i / j);
            //Console.WriteLine("{0}%{1}={2}", i, j, i % j);

            //Console.ReadKey();
            #endregion


            #region 赋值运算符
            int i = 10;
            int j = 20;
            //i+=j 的意思是  i=i+j
            Console.WriteLine("{0}+={1}", i, i += j);
            Console.WriteLine("{0}-={1}", i, i -= j);
            Console.WriteLine("{0}*={1}", i, i *= j);
            Console.WriteLine("{0}/={1}", i, i /= j);
            Console.WriteLine("{0}%={1}", i, i %= j);
            Console.ReadKey();

            #endregion

显示结果如下:
在这里插入图片描述

两个特殊的符号“++” “–”

  • 特殊符号在C#中放在外面没有区别,放在输出语句中才有区别
  • i++先执行再输出,++i下一次再执行
            int i = 10;
            i++;
            ++i;
            Console.WriteLine(++i);
            //Console.WriteLine(i);
            Console.ReadKey();

//- -意思相同

关系运算符

C#中的表达式与运算符_第6张图片


            #region 关系运算符 结果的类型是bool 结果只有true和 false
            int i = 10;
            int j = 20;
            Console.WriteLine("{0}>{1},{2}",i,j,i>j);
            Console.WriteLine("{0}<{1},{2}", i,j,i={1},{2}", i,j,i>=j);
            Console.WriteLine("{0}<={1},{2}", i,j,i<=j);
            Console.WriteLine("{0}<={1},{2}", i,j,i!= j);
            Console.ReadKey();
            #endregion

显示结果为:
C#中的表达式与运算符_第7张图片

逻辑运算符

C#中的表达式与运算符_第8张图片
C#中的表达式与运算符_第9张图片

  • && :两个关系运算符的条件都成立的时候,返回结果为true 如果第二个条件不成立 则返回false
  • || :两个关系运算符的条件一个成立的时候,返回结果为true,如果第二个条件不成立,则返回false

& 与 && 的区别:

  • 他们两个在运算上对条件的结果判断不会产生影响,但会对条件判断的运算有影响,关键在于 & 在运算时会连续运算所有需要判断的命令, 但 && 当遇到false时就会停止运算
  • 比如:
			  int i = 5;
            Boolean e = i > 4 && i++ > 7;
            Console.WriteLine(e);
            Console.WriteLine(i);
            Console.ReadKey();

以上结果会输出:
在这里插入图片描述
因为&&前面的(i>4)的值是true,所以需要继续运算后面的i++

但若像下面这样:

 			 int i = 5;
            Boolean e = i > 6 && i++ > 7;
            Console.WriteLine(e);
            Console.WriteLine(i);

就会输出:
在这里插入图片描述
因为&&前面的i>6的值是false,所以判断到这里就会中止运算,即i++不会被执行,被短路了叫做短路与&&
逻辑或||与以上同理

三元运算符 ?:

  • 判断条件?条件成立输出:条件不成立输出
    取代基本的 if 和 else
   	#region 三元运算符
            Console.WriteLine(10>12? "10>12":"10<12");
            //10大于12吗, 如果大于输出10>12 如果不大于输出10<12
            Console.ReadKey();
    #endregion

其他的运算符

  • is 判断是否属于该类型
			int i = 10;
            Console.WriteLine(i is int);
            Console.ReadKey();

显示如下:
在这里插入图片描述

  • new

new运算符用于创建一个新的类型实例,它有以下三种形式。
一.对象创建表达式,用于创建一个类类型或值类型的实例。
二.数组创建表达式,用于创建一个数组类型实例。
三.代表创建表达式,用于创建一个新的代表类型实例。

  • typeof

typeof运算符用于获取系统原型对象的类型,也就是Type对象。Type类包含关于值类型和引用类型的信息。typeof运算符可以在C#语言中各种位置使用,以找出关于引用类型和值类型的信息

            Type type = typeof(int);
            Console.WriteLine( type);
            Console.ReadKey();

以上代码会显示:
在这里插入图片描述

运算符的优先级

C#中的表达式与运算符_第10张图片

你可能感兴趣的:(C#中的表达式与运算符)