2009-06-12 2 views
5

나는 두 개의 클래스, 푸와 바, 두 가지 파일, 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

왜 그렇습니까?

답변

11

프로젝트의 파일은 종속성에 따라 정렬해야하므로 foobar을 볼 수 있도록 foo.fs 위에 bar.fs를 넣어야합니다.

2

this blog entry을 참조하십시오. 그러나 간단히 말해서 파일의 맨 위에 네임 스페이스 나 모듈을 지정하지 않으면 코드는 파일 이름에 의해 명명 된 모듈에 암시 적으로 들어갑니다. 따라서 프로젝트에 bar.fs와 foo.fs가 들어있는 경우 (순서대로 중요), 'foo.fs'파일에서 'bar'라는 유형을 참조하려면 'bar.bar'를 사용해야합니다 (여기서 첫 번째는 모듈 이름, 두 번째는 유형 이름).

+0

그러나 알다시피, 나는 네임 스페이스를 정의했습니다! – kitsune

+2

(죄송합니다. 네임 스페이스를 알지 못해 죄송합니다.) 프로젝트에서 두 파일의 순서가 맞습니까? – Brian

관련 문제