2011-06-23 43 views
7

Tôi chỉ mới bắt đầu bằng F # và tôi tự hỏi về đơn vị đo:Đơn vị đo lường được thể hiện như thế nào?

Tôi hiểu rằng họ chỉ có mặt tại thời gian biên dịch và Reflector xác nhận điều này: tạo đơn vị đo không phải là bí danh tạo ra một lớp với MeasureAttribute thuộc tính, nhưng khác hơn, float<km/h> được biểu thị dưới dạng đơn giản System.Double. Và không có thuộc tính nào về kiểu, tham số hàm xây dựng hoặc thuộc tính.

Cho đến giờ tôi đã hiểu. Nhưng khi tôi tham khảo hội đồng được biên dịch từ một dự án khác, dường như biết tất cả về các đơn vị đo lường, bao gồm cả bí danh. Làm thế nào để có được thông tin đó? Họ lắp ráp ở đâu?

Trả lời

10

Thông tin loại bổ sung của F # cửa hàng 'trong tài nguyên trong hội đồng được biên dịch và trình biên dịch F # biết cách đọc tài nguyên đó. Vì vậy, trong khi một công đoàn phân biệt được biên dịch thành một lớp, và một đơn vị đo được xóa thành một đôi, có thêm thông tin kiểu F # -specific trong một tài nguyên trong assembly để khi trình biên dịch F # đọc nó, nó có thể xây dựng lại thêm "F # metadata".

PowerPack có trình đọc siêu dữ liệu cho phép bạn truy cập chương trình theo chương trình.

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