为什么clojure-clr可以用Console/WriteLine却不能用Task/Delay

Why clojure-clr can use Console/WriteLine but can't use Task/Delay

我想试试 clojure-clr

这个程序工作正常:

(import [System])
(defn -main [& args]
 (Console/WriteLine "Hello, World!"))

但是当我想使用任务时 class:

(import [System.Threading.Tasks])
(import [System])

(defn -main [& args]
 (Task/Delay 1))

我得到 error:System.InvalidOperationException:无法找到静态字段:延迟

但在这种情况下,Task/Delay 与 Console/WriteLine

相同

不知道为什么

第一个有效,因为默认加载 System

尝试导入静态:

user=> (import (System.Threading.Tasks Task))
user=> (Task/Delay 1)
#object[DelayPromise 0x1554b35 "System.Threading.Tasks.Task+DelayPromise"]

或使用完全限定名称

user=> (System.Threading.Tasks.Task/Delay (TimeSpan/FromSeconds 10))
#object[DelayPromise 0x223ef57 "System.Threading.Tasks.Task+DelayPromise"]