2009-12-17 8 views
5

Chcę zadeklarować dwie klasy, które są powiązane, dlatego deklaruję je razem połączone przez "i". Każdy ma inne atrybuty ale ten kod nie działa („Nieoczekiwane słowa kluczowego«i»w definicji” błąd w słowie kluczowym „i”. W jaki sposób należy zadeklarować atrybuty drugiej klasie?Czy jest możliwe zdefiniowanie różnych atrybutów dla klas rekursywnych w F #

[<AbstractClass>] 
type foo() = 
    abstract member fun1 : foo -> foo2 
[<Serializable>] 
and foo2() = class 
    member x.bar y = y 
end 

Odpowiedz

8

To działa na mnie. robiłeś open System

open System 

[<AbstractClass>] 
type foo() = 
    abstract member fun1 : foo -> foo2 
and [<Serializable>] foo2() = class 
    member x.bar y = y 
end 

Edit: Ach, wydaje się, że drugi atrybut powinien być późniejsza and

2

Tak, otwarty system i tak rozwiązanie jest umieszczenie go po..

Ta!

Powiązane problemy