F#中读/写属性的最短声明

Mik*_*liy 0 f# c#-to-f#

我需要一些公共属性,在C#中我会这样做.

public VendorOrderService { get; set; }
Run Code Online (Sandbox Code Playgroud)

F#中此类属性的最短(正确/惯用)语法是什么?

member val VendorService = Unchecked.defaultof<VendorOrderService> with get, set
Run Code Online (Sandbox Code Playgroud)

PS我明白公共财产不是F#的超级惯用语.但是这段代码适用于较大的.NET项目,所以这些属性是强制性的.

Ser*_*hon 5

首先在C#中你应该写类型,就像这样

public string VendorOrderService { get; set; }
Run Code Online (Sandbox Code Playgroud)

在F#3.0中,您可以使用val关键字(就像您一样):

type MyType() = 
    member val VendorOrderService = "" with get, set
Run Code Online (Sandbox Code Playgroud)

或使用[CLIMutable]属性:

[<CLIMutable>]
type MyType = { VendorOrderService:string}
Run Code Online (Sandbox Code Playgroud)