自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 关于Task.Yield()

当同步过程执行到await时,就会停止这个过程,把优先权交还给调用异步方法的主过程。有时候,异步方法中的同步过程需要消耗很长的时间,使用这个表达式可以把优先权交还给主过程。这个表达式是用于在异步方法内中断同步过程,把线程优先权交还给其它过程,相当于await Task.Run(()=>{})。

2023-12-30 13:25:11 394

原创 怎样写一个异步方法

3.写这个异步方法中的await表达式,表达式返回一个Task或ValueTask类型的对象(其实是一个awaitable类型的对象,但Task类和ValueTask类也是awaitable类)。1.定义一个异步对象,这个对象有三种类型Task、Task和ValueTask,调用一个异步方法,把返回值赋值给异步对象。4.也可以写自己的异步方法,只要把自己写的方法传递给一个委托,这个委托是Task.Run()的形参。后两种因为直接返回了Task类型,所以其实也没有必要采用Task.Run()了。

2023-12-09 09:45:42 382

原创 枚举器和迭代器的整理

(IEnumerator和IEnumerator并无大的不同,仅仅是需要多定义1个IDisposable.Dispose(),以及把Current属性进行转换,从返回object类型到T类型。这个接口包含1个属性Current()和2个方法MoveNext()、Reset(),用这三个接口就可以实现对可枚举类对象中的一组数据的遍历(枚举)。可枚举类是指一个类中包含了GetEumerator(),这样的类就称之为可枚举类。GetEumerator()的返回值是一个接口:IEumerator。

2023-11-06 11:25:26 50

原创 接口的简单解释

接口简单说,是类为了方便外部使用自己的方法成员而提供的统一名称。比如说,A类里有方法F,B类里有方法F,C类里也有方法F,这三个F显然是不同的,为了有一个统一的称呼可以分别使用这三个F,给他们起了一个统一的名称IF,这个IF就是接口。接口,这个词乍一看根本搞不清是什么意思,就和“委托”一样,初学者很难理解,不会知道是谁对接谁。

2023-10-26 12:21:01 43

原创 关于C#中的协变和逆变

协变 逆变

2023-10-19 15:07:42 61

原创 关于C#的委托,初学者~

初学C#,以前有过一些C的基础,除了比较好理解的类,遇到的第一个新内容就是委托(delegate)。其实对于初学者,可以把委托对象理解为是一个“函数类型”的变量。

2023-08-06 19:21:43 51

原创 关于C#的值类型、引用类型、值参数、引用参数

引用类型 ----值参数(方法内外同步变化—但如果在堆上分配了新对象,就互不影响)值类型 -----值参数(方法内外互不影响)-----引用参数(方法内外同步变化)-----引用参数(方法内外同步变化)

2023-04-13 11:34:26 69

原创 解决系统更新后VS2022报错,提示查看Activitylog.xml的问题

搜索VsHookCLRLoading问题,找到解决方案,在控制面板->程序和功能->Windows功能。我的win11系统在更新后突然无法打开VS2022,报错后提示查看Activitylog.xml。勾选启用.Net Framework 3.5即可。

2023-03-17 11:16:58 885

原创 汇编语言 实验16 直接定址表

根据ah中的功能号计算对应子程序在table表中的偏移。

2022-11-09 13:38:45 144 1

原创 汇编语言 实验14 访问CMOS RAM

汇编语言 实验十四

2022-10-18 23:38:04 132

原创 汇编语言 实验13 第三题

汇编语言

2022-10-09 14:56:59 77

原创 汇编语言 实验13 第二题

汇编语言 实验13

2022-10-06 14:56:57 77

原创 汇编语言 实验13 第一题

汇编

2022-10-02 20:54:15 68

原创 汇编语言 检测点13.1 第二题

汇编语言 检测点13.1

2022-10-01 22:35:20 85

原创 汇编语言 实验12 编写0号中断处理程序

汇编语言 0号中断

2022-09-17 22:55:51 287

原创 汇编语言 实验11 编写子程序

任意字符串 小写转大写

2022-09-15 22:26:22 203

原创 汇编语言 课程设计1 打印Power idea公司的数据

汇编语言 课程设计1

2022-09-04 20:09:14 294

原创 汇编语言 实验10 子程序3 打印十进制数

汇编

2022-07-12 18:06:11 162

原创 汇编语言 实验10 子程序2 不越界除法

用栈来保存数据,栈顶仅仅和sp有关,和stack segment自定义的数据段无关,要使栈和定义的数据段吻合,需要设置合适的sp值。如果用debug调试,则栈中还会有一些其它数据,会随着数据进栈出栈而浮动,在利用栈数据的时候要小心。...

2022-07-11 12:41:36 47

原创 汇编语言 实验10 子程序1.显示字符串

汇编语言 实验10 子程序1

2022-07-01 17:59:41 437

原创 几句话说清scanf

几句话说清scanf。如果用%c读取字符,那么输入的每一个字符(包括空白字符)都会被读取;如果用%s读取字符串,那么忽略输入开头的所有空白字符,直至遇到第一个空白字符结束;如果用%d读取整数(浮点等其它类型也一样),那么忽略输入开头的所有空白字符,直至遇到第一个非数字字符结束。...

2021-12-14 14:42:46 172

原创 C Primer 第十四章 巨人航空

偷个懒 可以把第8、9、10三题合在一起做#include <stdio.h>#include <string.h>#include <ctype.h>#include <stdlib.h>struct seat { int num; int book_stat; char firstname[30]; char lastname[30];};struct seat planeseats[4][12]={

2021-11-15 15:27:53 457

原创 C Primer Plus 第十三章 第九题

#include <stdio.h>#include <stdlib.h>int main(void){ FILE *fp, *tmp; int n=0; char word[40]; fp=fopen("wordy","a+"); if ((tmp=fopen("num","rb+"))==NULL) { tmp=fopen("num","wb"); fwrite(&n,sizeof(int),1,tmp);

2021-09-09 20:42:50 56

原创 C Primer Plus 第十三章 第七题

有许多的答案仅仅是普通的逐行打印,如果遇到有空行也不能识别,我的程序可以做到只打印有可打印字符的行(花哨的输入和打开关闭文件从略)。#include <stdio.h>#include <stdlib.h>#include <ctype.h>int printline(FILE *);int main(void){ int file1_stat=1,file2_stat=1; int n=0; char file1[40]; cha

2021-09-06 16:46:58 53

原创 C语言编成的一些心得

检查空指针的语句放在一串逻辑表达式的最前面,以防后面的表达式出错;用二维数组保存字符串,要进行后续操作并不打乱这个字符串,需要另外定义一个指针数组,指向每一个字符串;以指针进行操作,需要时刻记住指针的位置,做完一个动作要记得让指针重新回到开头。判断一个字符串是否是单词,只要判断前一个字符是字母,后一个字符是空白即可。...

2021-08-13 09:31:25 36

原创 关于数组指针的一些需要注意的地方

1.在多维数组中,指向低维数组的指针并不是普通的指向指针的指针。2.在指针的使用上一定要清除哪些是常量,哪些是变量,还要清楚指针指向的是变量还是常量。只有指针变量才能进行增减操作数组标记法和指针标记法最大的区别就是前者是常量,不能成为左值。例如一维数组中:int a[8];int* p=a;p++; (正确)a++; (错误)二维数组中:int a[3][5];int (p)[5];p=a;p++;(正确,因为p是一个指针变量)p++; (错误,因为p=a[0],这是一个常量,

2021-07-29 17:59:31 365

原创 2021-07-21 关于二维数组的指针

关于二维数组的指针假设有二维数组int a[2][3]那么a、a、a[0]、&a[0]、&a[0][0]的内容是一样的,都是首单元的地址。特别要明白的是,虽然a和a里面都指向首单元的地址,但寻址方式不一样,a是一个指向数组的指针,a+1的跨度是3个int单元;而*a是一个指向int的指针,*a+1的跨度是1个int单元。a是一个指向数组的指针(要和普通的指向指针的指针相区别)。在使用的时候,仅仅需要掌握它是指针变量,指向某个起始位置就可以了,至于具体的寻址方式,编译器会以另外的方式处理

2021-07-21 10:43:57 50

原创 2021-07-06 第七章最后一题

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-07-06 19:17:51 34

原创 2021-06-21

第六章编程练习第四题使用嵌套循环打印ABCDEFGHIJKLMNOPQRSTU其实,使用一个循环也可以做到:#include <stdio.h>int main(void){ int j,step=1; for (j=0;j<21;j++)//打印21个字符 { printf("%c",'A'+j); if (j==(step+1)*step/2-1) //j遇到0、2、5、9……这些数字的时候就打回车,出现的规律是(行数+1)*行数/2-

2021-06-21 22:53:58 55

原创 2021-06-12

C Primer Plus 第四章编程练习第二题,貌似大部分答案都有问题#include <stdio.h>#include <string.h>int main(void){ char name[40]; int width; printf("Please enter your name:\n"); scanf("%s",name); width=strlen(name); printf("\"%s\"\n",name); print

2021-06-12 23:14:10 57

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除