C#每天十分钟基础闲话系列四。表达式(下)

表达式:操作数与运算符构成。
操作数:文本、字段、变量、表达式

静态类:程序一开始运行便占用内存。
非静态:每实例化一次便占用内存,多次实例化会造成内存过大消耗。

await运算符暂停对封闭async方法的求值,直到其操作数表示的异步操作完成。
async修饰符:可将方法、lambda表达式或匿名方法指定为异步。
异步编程:Async和Await
Await修饰符:非阻塞方式来启动任务,在当前任务未完成时,继续执行其他任务。
async和Await 多线程任务 单线程 区别:
开启多线程=很多任务,请很多人同时做很多事。有人煮饭,有人洗碗。
async和Await=很多任务,自己同时做多件事。自己煮饭的时候,有空就去洗碗。
单线程:很多任务,事情一件一件做。自己煮饭,饭没煮好,决不去洗碗。

Task类:命名空间 System.Threading.Tasks;
Task类:无返回值,以异步方式执行的单个操作。
Task类:在线程池上异步执行,不在应用程序线程上执行。
线程池:一种多线程处理形式。
线程:操作系统进行运算调度的最小单位。

Task.WhenAll() : 完成所有提供的任务时,创建将完成的任务。即,将任务枚举在集合中完成。
await Task.WhenAll(eggsTask, baconTask, toastTask, staffTast, roomTask);

Task.WhenAny():完成所有提供的任务时,创建将完成的任务。
var allTasks = new System.Collections.Generic.List { heightAndwidthTask, addUCTask, write_message };
while (allTasks.Any()) {
Task finished = await Task.WhenAny(allTasks);
allTasks.Remove(finished);
}

一元&运算符:返回操作数地址。
&运算符:操作数必须是固定变量。

  • 指针间接运算符:获取其指针类型操作数指向的变量。别称:取消引用运算符。
    true与false运算符:true运算符返回bool值true操作数一定为true。
    false运算符返回bool值true,操作数一定为false。
    … 范围运算符: 指定索引范围开头与结尾作为操作数。

乘法 * 运算符:计算操作数乘积。
一元* 运算符:是指针间接运算符。
/ 除法运算符:左侧操作数除以右侧操作数。
%余数操作符:左侧操作数除以右侧操作数后的余数。
+加法运算符: 计算操作数的和。
-减法运算符:左侧操作数减去右侧操作数;
<< 左位移运算符:将左侧操作数向左移动右侧操作数定义的位数。

右侧位移运算符:将左侧操作数向右移动右侧定义的位数。
<< 和 >> 位移运算符:左侧操作数非负,高顺序空位为0。负数为1.
< 小于运算符:左侧操作数小于右侧操作数,返回true,反之为false;
大于运算符:左侧操作数大于右侧操作数,返回true,反之为false;
<= 小于或等于运算符:左侧操作数小于或等于右侧操作数,返回true,反之false;
= 大于或等于运算符:左侧操作数大于或等于右侧操作数,返回true,反之false;
== 相等运算符: 左侧操作数等于右侧操作数,返回true,反之false;
!= 不相等运算符: 左侧操作数不等于右侧操作数,返回true,反之false;
&& 条件逻辑AND运算符:操作数的逻辑与。所有结果为true,才为true,反之为false;
|| 条件逻辑 或 运算符 :操作数的逻辑或,有一个结果为true,才为true,反之为false;
?? 和 ??= null合并运算符: 左侧操作数不为空,返回左侧运算结果,反之,返回右侧运算结果。
?: 三元运算符: 根据布尔表达式来选择返回其中一个结果。
a ? b : c 结果a为true,返回b的结果,反之,返回c的结果。
ref 条件表达式:返回其中一个表达式结果的引用。
= 赋值运算符:将右侧操作数赋值给左侧操作数。
+= 运算符:将右侧操作数给左侧操作数增加一次。
-= 运算符: 将右侧操作数给左侧操作数减去一次。
*= 运算符: 将右侧操作数给左侧操作数相乘一次。
/= 运算符: 将右侧操作数给左侧操作数除一次。
%= 运算符: 将右侧操作数给左侧操作取余数。

右结合运算:= 赋值运算符 ?? null值合并运算符 条件运算符 ?:

发布了130 篇原创文章 · 获赞 36 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44548307/article/details/104446378