表达式和操作符

表达式其本质就是表示了一个值 (30,“”)
最简单的表达式就是常量和变量
表达式可以通过操作符来进行转换和合并
一个操作符需要一个或多个输入操作数来产出新的表达式

操作符

一元、二元、三元 (一元就是一个操作数,其它同理)
二元操作符采用中缀(操作符放在两个操作数之间)表示法
例如:12*30

概念:

Primary Expressions主要表达式?

Primary Expressions就是表达式,但是它里面包括了使用操作符组成的表达式
例如:Math.Log(1)
由两个表达式组成
第一个表达式使用.操作符来执行成员的查找
第二个表达式使用()操作符来实现了方法的调用

void表达式()

就是没有值的表达式
Console.WriteLine(1)
无法用于构建更复杂的表达式

赋值表达式

使用=把另一个表达式结果赋值给一个变量
x = x * 5
赋值表达式不是void表达式,它有值,就是被赋的值,所以可以与其它表达式进行组合
y = 5 * (x = 2)
a = b = b = d = 0 (右结合,从右到左)
复合赋值操作符就是使用另一个操作符来组合赋值的句法快捷方式
x*=2相当于x=x*2
x<<=1相当于x=x<<1
事件event是个例外,+=和-=映射到event的add和remove访问器

操作符的优先级和结合性

1 + 2 * 3相当于1 + (2 * 3)
*的优先级比 + 高

左结合的操作符(从左至右计算)

二元操作符(除了赋值,lambda,null合并操作符是左结合的)
也就是从左到右的进行估算
8/4/2
(8/4)/2 // 1
8/(4/2) //4

右结合的操作符

赋值、lambda、null合并和条件操作符是右结合的
从右向左估算
x = y = 3
未命名图片.png