第六章分为两个部分,第一个是运算符,另一个是类型强制转换。这个笔记部分先讲运算符中自己以前不熟悉的部分

逻辑运算符

说明
& 逻辑运算符:AND-与
| 逻辑运算符:OR-或
^ 逻辑运算符:XOR-异或
~ 位操作:取反
&& 条件逻辑运算符:与
|| 条件逻辑运算符:或
! 逻辑运算符 :非

&和&&等的区别

在两个条件判断的时候,前者两边条件都判断,后者如果前面不成立直接跳出

在省计算机资源的情况下,一般都会用&&

关于?

  1. 三元运算符–?:

    int a = 1
    string b = a>5?"YES":"NO"
    
  2. 可空类型和运算符

    值类型一般不可以为null,但是数据库里面却有时候常常是可空的,所以如此设计,更加方便

    int? a = null;
    
  3. 空合并运算符–??

判断是否为null,如果是,就使用??后面的值.

需要注意的是:??前后两个变量的类型要相同

int? a = null;
int b = a ?? 10
等价
int b = a == null ? 10 : a;
  1. 空条件运算符

其实属于超级无用的语法糖

对于类在变量的属性(.)前加?判断;

之前
void xx(QWER o){
    if(0==null) return;
    var z=o.xx;
}

之后
void yy(QWER q){
    var z=q?.xx;
}

对于数组

int[] aa=null;

之前
int x = aa == null ? 1 : aa[0];
之后
int x = aa?[0] ?? 1;

有符号数和无符号数

int,long,short的最前面一位用来表示正负