Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在F#.net中为特定代码块打开命名空间_.net_F#_Namespaces - Fatal编程技术网

在F#.net中为特定代码块打开命名空间

在F#.net中为特定代码块打开命名空间,.net,f#,namespaces,.net,F#,Namespaces,我知道这在C#中是不可能的;最接近的方法是在代码文件的顶部形成一个别名。在F#中有没有办法做到这一点 有关我问题的C#类比,请参见: 我的猜测是“不,使用别名。”但没有冒险,没有收获。打开名称空间的最小范围是在模块中 解决方法是将函数及其开放名称空间放入自动打开的子模块中,以便open命令不会污染父模块,并且子模块对用户是透明的: [<AutoOpen>] module Utils = open System.IO // Now you do not have

我知道这在C#中是不可能的;最接近的方法是在代码文件的顶部形成一个别名。在F#中有没有办法做到这一点

有关我问题的C#类比,请参见:


我的猜测是“不,使用别名。”但没有冒险,没有收获。

打开名称空间的最小范围是在模块中

解决方法是将函数及其开放名称空间放入自动打开的子模块中,以便
open
命令不会污染父模块,并且子模块对用户是透明的:

[<AutoOpen>]
module Utils =
    open System.IO    
    // Now you do not have to include the full paths.
    let writeToFile filename (text: string) =  
      let stream = new FileStream(filename, FileMode.Create)
      let writer = new StreamWriter(stream)
      writer.WriteLine(text)
[]
模块Utils=
开放系统
//现在,您不必包含完整路径。
让writeToFile文件名(文本:字符串)=
let stream=new FileStream(文件名,FileMode.Create)
let writer=新的流编写器(流)
writer.WriteLine(文本)