3
私はIEquatable<T>
をF#の特定のクラスに実装しようとしています。しかし、この場合、予期しないエラーが発生します。これはコンパイルされませんF#でこのインターフェイスの実装がコンパイルされないのはなぜですか?
type Foo private (name : string) =
member this.Name = name
member this.Equals (other : Foo) = this.Name = other.Name
override this.Equals other =
match other with | :? Foo as foo -> this.Equals foo | _ -> false
override this.GetHashCode() = this.Name.GetHashCode()
interface IEquatable<Foo> with
this.Equals other = this.Equals other
:
は、私は、次のコードを持っています。私は次のエラーが表示されます: "Unexpected keyword with 'with' member definition '。また、"間違ったインデントの可能性があります... "という警告が表示されます。なぜ上記はコンパイルされません。インターフェースは、一般的にF#で実装されている方法です?
F#のそれ以降のバージョンでは、エラー報告を改善するためにいくつかの作業が行われています。これは良い候補のようです。おそらくこれを問題として投稿する:github.com/microsoft/visualfsharp/issues? – FuleSnabel