【发布时间】:2014-08-24 18:17:00
【问题描述】:
考虑到以下约束,是否可以以某种方式编译X M() { /*...*/ }:
- 您不能向
M添加任何其他修饰符。 -
/*...*/不包含return或throw,您无法更改。 - 您不能将重写器添加到编译器管道。
- 您可以更改
M周围的所有其他内容。
这似乎是一个荒谬的问题,但它实际上对 DSL 很有价值。
例如。我可以定义类似task M() {} 的东西,它只是表示这是一项任务,与返回值无关。
【问题讨论】:
-
如果它返回Task并且有修饰符
async,你不需要返回任何东西。可以接受吗? -
@CodeCaster: "abstract method" 将失败约束 #1。
-
是code golf 吗? :D
-
所以不
async Task foo()我接受?