2013-10-22 117 views
4

让说我有在C#此接口,要实现它在F#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

回答

7

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

type public Batch = 
    interface IBatch with 
     member f.Connection 
      with get() = new Devart.Data.Oracle.OracleConnection() :> System.Data.IDbConnection 
      and set value =() 
+0

啊。我知道这是我错过的一个简单的语法细节。谢谢!将在10分钟内接受你的答案 – Filip