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

Nav*_*rma 3 f#

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

我想声明一个公共对象然后在本地使用这个对象.(就像我们在C#中所做的那样).

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

   public void DoSomething()
   {
      subman = new SubscriptionManager();
   }
}
Run Code Online (Sandbox Code Playgroud)

像这样的东西.

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

Ant*_*fer 6

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

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

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

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