打开REPL,输入:

(System.Console/WriteLine "********")

演示

显然,可以通过这种形式调用.Net方法。但不够美观,我们将代码做一个封装。

(defn writeline [message]
    (System.Console/WriteLine message))

演示

既然可以用Console,能不能使用MessageBox呢?当然可以,以下代码加载MessageBox。

(System.Reflection.Assembly/Load "System.Windows.Forms, Version=2.0.0.0, 
 Culture=neutral, PublicKeyToken=b77a5c561934e089")

(import (System.Windows.Forms MessageBox))

演示

(MessageBox/Show "内容" "标题")

演示

封装MessageBox

(defn show-message 
    ([content] (show-message content "Message")) 
    ([content title] (MessageBox/Show content title)))

演示

显示消息框是一件很无聊的事情,WinForms 怎么能没有form,说干就干。

(import (System.Windows.Forms Form))
(.Show (Form.))

演示

form是出来了,但是form上面什么都没有,并且程序死掉了。先这样吧,睡觉了。

参考:

clojure 新手指南(10):与java交互

Clojure CLR 入门

Clojure - Functional Programming for the JVM