我对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#中做同样的事情吗?
正如人们在评论中提到的那样,有几个原因导致这可能不是正确的做法.话虽这么说,这段代码会给你大致的信息:
[<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类,只是为了使事情编译.此处还有关于公共字段的相关讨论,其中列出了至少可变字段不公开的解决方案.