将对象声明为public然后在F#中本地使用它

时间:2017-02-08 11:18:31

标签: f#

我对F#了解不多,但我正在研究一个项目(在C#上),我必须在预先编写的F#代码中进行一些更改。

我想声明一个公共对象,然后在本地使用这个对象。(就像我们在C#中一样)。

class abc
{
   public SubscriptionManager subman = null;  // object of class SubscriptionManager

   public void DoSomething()
   {
      subman = new SubscriptionManager();
   }
}

像这样。

我可以在F#中做同样的事情吗?

1 个答案:

答案 0 :(得分:6)

正如人们在评论中所提到的,有几个原因可能导致这不正确。话虽这么说,这段代码会给你大致的信息:

[<AllowNullLiteral>]
type Manager() = class end

type abc() = 
    member val subman: Manager = null with get, set
    member this.DoSomething() = this.subman <- Manager()

我已经包含了一个虚拟Manager类,只是为了使事情编译。还有一个关于公共字段here的相关讨论,它列出了一个解决方案,其中至少可变字段不公开。