7

私は Haskell を少し使っていましたが、それはずっと前のことなので、F# を調べることにしました。私は、C、C++、および C# を使用して、日常的に多くの開発を行っています。

F# を dll にコンパイルするときに、F# の型を C# のクラスとして公開できることに気付きました。しかし、私は考えるようになりました。F# にロジックを入れたい (試してみる) いくつかの C# クラスがあります。しかし、既存の C# コードの多くは、基本クラスによって多くのオブジェクトを処理します (これは非常に初歩的です)。C# の基本クラスを F# 型のベースとして使用することは可能でしょうか? それとも、F# は他の F# 型からのみ継承できますか?

この背後にある理由は、基本クラスをメインの C# プロジェクトの一部として保持し、特定の dll (基本クラスによる特定のコントラクトに基づくプラグインのようなもの) を F# で記述できるようにするためです。それができない場合は、基本クラスのみを含む別の F# プロジェクトを追加する必要がありますが、これは少し複雑すぎると感じます。

4

2 に答える 2

12

はい。可能です。

type SomeClass =
    inherit SomeCSharpBase

詳細は次のとおりです。

継承 (F#)

于 2012-09-17T19:30:19.917 に答える
6

F# クラスは .NET クラスから継承できます。

type FSharpClass() =
    inherit System.AccessViolationException()

レコード、判別共用体などの他の一部の F# 型は、クラスから継承できませんが、インターフェイスを実装できます。

type FSharpRecord =
    { d : System.IDisposable }
    interface System.IDisposable with
        member this.Dispose() = this.d.Dispose()
于 2012-09-20T07:19:26.340 に答える