isaac1233 发表于 2019-11-3 15:43

【C#】求大神解答一段反编译后的代码

用dnspy查看的源码
在vs上会报错,说明是给编译器看的?

其中在方法private async Task method_0()里面的一段代码
TaskAwaiter taskAwaiter = this.method_1().GetAwaiter();
                                                if (!taskAwaiter.IsCompleted)
                                                {
                                                        await taskAwaiter;
                                                        TaskAwaiter taskAwaiter2;
                                                        taskAwaiter = taskAwaiter2;
                                                        taskAwaiter2 = default(TaskAwaiter);
                                                }
                                                taskAwaiter.GetResult();
                                                taskAwaiter = default(TaskAwaiter);

那位精通C#的能说一下这段代码原来是怎么写的吗
或者讲解一下

这里先谢谢各位大佬

Bds1r 发表于 2019-11-3 16:15

上个软件看看

wtujoxk 发表于 2019-11-3 16:29

可能你的.net版本太低了

℡小疯、 发表于 2019-11-3 17:15

放弃c#吧

chinasmu 发表于 2019-11-3 17:32

代码没错,听3L的,.net4.5及以上才行

renxiaofeixia 发表于 2019-11-3 17:58

就这一点能看出个啥

renxiaofeixia 发表于 2019-11-3 18:00

var result = await this.method_1();就这一行

isaac1233 发表于 2019-11-3 18:12

chinasmu 发表于 2019-11-3 17:32
代码没错,听3L的,.net4.5及以上才行

vs2019 .net4.72

isaac1233 发表于 2019-11-3 18:17

Bds1r 发表于 2019-11-3 16:15
上个软件看看

这是代码报错的地方

错误        CS1061        '“TaskAwaiter”未包含“GetAwaiter”的定义,并且找不到可接受第一个“TaskAwaiter”类型参数的可访问扩展方法“GetAwaiter”(是否缺少 using 指令或程序集引用?)       

isaac1233 发表于 2019-11-3 18:29

renxiaofeixia 发表于 2019-11-3 18:00
var result = await this.method_1();就这一行

我试了下这样写也会报错
页: [1] 2
查看完整版本: 【C#】求大神解答一段反编译后的代码