查询F#中的泛型用法,特别是新的T()和ref单元格

7sh*_*rp9 1 generics f# mutable ref

这个C#的F#等价物是什么:

    public T GetNewItem()
    {
        return new T();
    }
Run Code Online (Sandbox Code Playgroud)

另外,如何将新的T()作为ref单元格返回,以便在需要out或ref参数的.Net库中使用?

Dan*_*iel 5

我认为这样简单的事情会起作用:

let getNewItem() = new 'T()
Run Code Online (Sandbox Code Playgroud)

它推断出默认的构造函数约束.

let mutable d = getNewItem() //d inferred to be System.DateTime
DateTime.TryParse("1/1/2011", &d)
Run Code Online (Sandbox Code Playgroud)