2009-06-12 40 views
5

Tôi có hai lớp học, Foo và Bar, hai tập tin riêng biệt, foo.fs và bar.fsHai lớp học, việc "loại không được định nghĩa" lỗi

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 

tôi nhận được một "Loại 'bar' không được xác định. " lỗi bên trong lớp học foo, cho val Bar : bar

Tại sao lại như vậy?

Trả lời

11

Tệp trong dự án phải được sắp xếp theo sự phụ thuộc, vì vậy bạn cần đặt bar.fs ở trên foo.fs trong dự án sao cho foo có thể thấy bar.

2

Xem this blog entry, nhưng một thời gian ngắn, nếu bạn không chỉ định không gian tên hoặc mô-đun ở đầu tệp, mã sẽ ẩn trong mô-đun có tên tệp. Vì vậy, nếu dự án của bạn chứa bar.fs và foo.fs (theo thứ tự đó, thứ tự các vấn đề) thì để tham chiếu loại có tên 'bar' từ tệp 'foo.fs', bạn phải sử dụng 'bar.bar' (nơi đầu tiên là tên mô-đun và tên thứ hai là tên loại).

+0

Nhưng như bạn có thể thấy, tôi có một không gian tên được xác định? – kitsune

+2

(Rất tiếc, xin lỗi không để ý đến không gian tên.) Hai tệp có đúng thứ tự trong dự án không? – Brian

Các vấn đề liên quan