从F#访问显式转化运算符

时间:2015-07-27 08:55:45

标签: f# npgsql

使用npgsql从postgresql中读取日期值时出现以下错误:

This expression was expected to have type
    DateTime    
but here has type
    NpgsqlTypes.NpgsqlDate  

现在npgsql文档引用了一个显式的运算符:

[C#]
public static explicit operator DateTime(
    NpgsqlDate date
);

但是我无法弄清楚如何从F#访问它。

有几种方法可以实现我的需要,但我感到很失望和沮丧,因为我无法找到一种方法来访问内置的演员阵容。

我尝试了旧的Convert.ToDateTime(...),但即使这样也不行。

有人知道吗? THX。

1 个答案:

答案 0 :(得分:3)

显式转换运算符可以通过调用op_Explicit(我之前的注释中的套管错误;我之前没有尝试过)来触及类型:

let date = NpgsqlDate.op_Explicit npgsqlDate

我还发现了各种各样的地方(比如严翠的博客here),为方便起见,为{all}明确转换定义了一个F#运算符!>,所以你可以说

let date = !> npgsqlDate

我认为这是一种非常巧妙的方式。