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

F# 从F访问显式转换运算符#,f#,npgsql,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#访问

使用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.

可以通过调用类型上的
op_explicit
(我在前面的注释中的大小写错误;我当时没有尝试过)函数来访问显式转换运算符:

let date = NpgsqlDate.op_Explicit npgsqlDate
我还发现了很多地方(比如在Yan Cui的博客中)定义了F操作符,比如
!>用于(所有!)显式转换,所以您可以说

let date = !> npgsqlDate

我认为这是一个很好的方法。

你有没有尝试过类似于
让dateTime:dateTime=NpgsqlDate.op_显式NpgsqlDate
?我刚刚尝试过,但它说它没有定义。太棒了!非常感谢。我知道一定会有办法的——有了F#总会有(几乎)的。也谢谢你链接到burning monk博客。显然,我需要重新整理我的Google fu,因为我自己找不到它。如果为一个类型定义了多个显式转换,则不清楚它是如何工作的。例如,StackExchange.Redis类型RedisValue定义了从RedisValue转换为bool、int、long、uint、ulong、double、float、decimal等的显式运算符。如果我只说“RedisValue.op_explicit value”,您如何知道转换目标的类型?