'符号未定义'的F#编译器指令

时间:2011-02-21 20:07:22

标签: f#

有没有办法在F##if指令中指定不应该定义符号?像这样:

#if not COMPILED
// do script stuff here
#endif

虽然以上是语法错误。

完成了同样的事情
#if COMPILED
#else
// do script stuff here
#endif

但我想知道是否有更简洁的方式?

(编辑:我问的是一般情况,而不是COMPILED / SCRIPT的具体情况。抱歉,我从一开始就忘记提及。)

3 个答案:

答案 0 :(得分:5)

不,根据MSDN

,没有更简洁的方法

答案 1 :(得分:4)

我会反转符号的语义。

#if SCRIPT
    // do script stuff here
#endif

答案 2 :(得分:0)

对于那些点击此问题的人来说,搜索运行交互模式与已编译的可执行文件:

#if INTERACTIVE
#r "YOUR_REFERENCE_HERE.dll"
#endif

//your code here ...  

#if INTERACTIVE
#else
[<EntryPoint>]
#endif
let main args  =
  //you code here ... 
  0 

#if INTERACTIVE
main null |> ignore
#endif