Task.WaitAll() - 没有参数

Swi*_*nds 3 .net c# task-parallel-library

使用 System.Threading.Tasks.Task.WaitAll()我可以看到我应该使用此方法的可用参数

可以在这里看到,但是当在visual studio中编写时,我能够在没有参数的情况下调用该方法:

Task.WaitAll();
Run Code Online (Sandbox Code Playgroud)

并且它没有显示为IDE中的语法错误(缺少参数),请您解释为什么这种特定方法可以实现?

Hen*_*man 13

这种方法的完整定义是

public static void WaitAll(params Task[] tasks)
Run Code Online (Sandbox Code Playgroud)

单词params表示该方法接受可变数量的参数.也明确允许0个参数.

不用说,这种方法调用后该方法无效.

  • @ 0A0D为什么?对于`params`的许多实现,没有参数是一个明智的选择,例如`Console.WriteLine()`.在这种特殊情况下,它没有意义(也没有问题). (7认同)
  • @ 0A0D是的,我知道,当添加编译器警告时,他们会非常努力地确保代码很可能是一个bug.在这种情况下,它的概率不是很高.这更像是规则的例外.另请注意,使用此代码的负面后果非常非常小,再次反对添加编译器警告.每次编写`Console.WriteLine()`时,你真的想看到编译器警告吗?我知道我没有. (2认同)
  • @ 0A0D所以你想要特殊情况`Task.WaitAll`作为方法吗?重点是什么?获得的价值是多少?你没有预防任何重大的负面后果,也没有阻止对很多人造成轻微的负面影响.完全不值得.它的净值可以忽略不计,如果它甚至是正数的话. (2认同)