我正在实现一种模仿 System.Data.Common.DbParameter 类的类型。此类型将用于 C#、VB.NET 和 F# 项目。这是一个精简的示例:
type myNewType =
member val Direction: int = 0 with get,set
member val Value: Object = null with get,set
类中的 Value 属性是对象类型。在我的类型中,我想将该属性限制为字符串或字节数组。我在想 DU 可能是完美的,但我不确定语法。这是一些伪代码:
type Value =
| Value of String or byte[]
type myNewType =
member val Direction: int = 0 with get,set
member val Value: Value = [||] with get,set
有人可以帮我语法吗?提前致谢
最佳答案
type DbParameterValue =
| StringValue of s: string
| BytesValue of bytes: byte[]
type myNewType() =
member val Direction = 0 with get, set
member val Value: DbParameterValue = BytesValue([||]) with get, set
成员 val 语法总是让我失望。最难的部分是找出一个好的默认值。我会说空字节数组在这里根本不理想,也许需要一个构造函数参数来设置初始状态应该是什么?
关于.net - F#:使用 DU 来限制属性的类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42582057/