2009-06-12 18 views
5

私は二つのクラス、fooとbar、二つの異なるファイル、foo.fsとbar.fs2つのクラスは、「型が定義されていません」取得エラー

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

なぜですか?

答えて

11

プロジェクト内のファイルは、依存関係によって注文する必要があるため、fooにはbarが表示されるように、foo.fsの上にbar.fsを配置する必要があります。

2

this blog entryを参照してください。ただし、ファイルの先頭に名前空間やモジュールを指定しないと、コードは暗黙的にファイル名で指定されたモジュールに入ります。したがって、あなたのプロジェクトにbar.fsとfoo.fsが含まれている場合(この順序で問題がある)、 'foo.fs'ファイルから 'bar'という名前の型を参照するには、 'bar.bar'を使用する必要があります。モジュール名、2番目は型名です)。

+0

ご覧のとおり、私は名前空間を定義していますか? – kitsune

+2

(名前空間に気づかないうちに申し訳ありません)プロジェクトの2つのファイルが正しい順序で表示されていますか? – Brian

関連する問題