我对F#了解不多,但我正在研究一个项目(在C#上),我必须在预先编写的F#代码中进行一些更改。
我想声明一个公共对象,然后在本地使用这个对象。(就像我们在C#中一样)。
class abc
{
public SubscriptionManager subman = null; // object of class SubscriptionManager
public void DoSomething()
{
subman = new SubscriptionManager();
}
}
像这样。
我可以在F#中做同样的事情吗?
答案 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的相关讨论,它列出了一个解决方案,其中至少可变字段不公开。