5

假设我在 C# 中有这个接口并想在 F# 中实现它

public interface IBatch
{
    System.Data.IDbConnection Connection { get; set; }
}

我希望在 F# 中实现接口,但无法找出正确的语法。我有这样的事情:

type public Batch = 
    interface IBatch with
        member f.Connection 
            with get() = new Devart.Data.Oracle.OracleConnection()
            and set value = ()

我得到的错误是:

此表达式应为 IDbConnection 类型,但此处为 Devart.Data.Oracle.OracleConnection 类型

4

1 回答 1

8

F# 不像 C# 那样实现隐式向下转换,你需要有

type public Batch = 
    interface IBatch with
        member f.Connection 
            with get() = new Devart.Data.Oracle.OracleConnection() :> System.Data.IDbConnection
            and set value = ()
于 2013-10-22T07:56:04.833 回答