Два класса, получая ошибку «тип не определен» - PullRequest
5 голосов
/ 13 июня 2009

У меня есть два класса, Foo и Bar, два разных файла, foo.fs и bar.fs

namespace Ganymede.Versioning

type foo = class 
    val Bar : bar
    new(input) = { Bar = input }    
    end


namespace Ganymede.Versioning

type bar = class
    val Test : string
    new (input) = { Test = input; }
    end

Я получаю «Тип« бар »не определен». ошибка внутри класса foo, для val Bar : bar

Почему это?

Ответы [ 2 ]

11 голосов
/ 13 июня 2009

Файлы в проекте должны быть упорядочены по зависимости, поэтому вам нужно поставить bar.fs над foo.fs в проекте, чтобы foo мог видеть bar.

2 голосов
/ 13 июня 2009

См. эту запись в блоге , но вкратце, если вы не укажете пространство имен или модуль в верхней части файла, код неявно отправляется в модуль, названный именем файла. Поэтому, если ваш проект содержит bar.fs и foo.fs (в таком порядке, порядок имеет значение), то для ссылки на тип с именем 'bar' из файла 'foo.fs' вы должны использовать 'bar.bar' (где первым является имя модуля, а второе имя типа).

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