Можно ли определить различные атрибуты для рекурсивных классов в F # - PullRequest
5 голосов
/ 17 декабря 2009

Я хочу объявить два класса, которые связаны, поэтому я объявляю их вместе связанными 'и'. Каждый из них имеет различные атрибуты, но этот код не работает («Неожиданное ключевое слово» и «в определении» ошибка в ключевом слове »и« Как мне объявить атрибуты второго класса?

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

Ответы [ 2 ]

8 голосов
/ 17 декабря 2009

Это работает для меня. Вы делали open System?

open System

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

Edit: Ах, похоже, что второй атрибут должен быть ПОСЛЕ and.

2 голосов
/ 17 декабря 2009

Да, я открыл Систему и да, решение состоит в том, чтобы разместить ее после and.

Та!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...