Tôi đang gọi các hàm trong khung XNA từ F # chấp nhận các giá trị Nullable. Bây giờ, trong C#, bạn sẽ chỉ cần gọi:Nullablle <> 's và "null" trong F #
foo(arg1, arg2, null, arg4)
Bây giờ, tôi đã thử điều đó trong F # nhưng không thích. Nó nói: "Lỗi 9 Loại ràng buộc không khớp. Loại 'a không tương thích với kiểu System.Nullable Loại' System.Nullable 'không có' null 'làm giá trị thích hợp."
Tôi hiểu tại sao điều này xảy ra, sắp xếp, nhưng có vẻ như thực sự bất tiện. Tất cả những gì tôi đang làm bây giờ là làm cho cuộc sống dễ dàng hơn, thay vì gõ liên tục (Nullable<Rectangle>)null
mỗi lần tôi gọi hàm, tôi chỉ thực hiện let nullRect = (Nullable<Rectangle>)null
và sử dụng nullRect. Điều này có vẻ thực sự ngu ngốc, đặc biệt là kể từ khi tôi phải làm điều đó cho tất cả các loại nullable tôi tương tác với. Có cách nào tốt hơn, thành ngữ hơn để xử lý việc này không?
Như một lưu ý phụ, điều này có thể được đơn giản hóa thành '[] cho nl = System.Nullable <_>()'. F # có thể suy ra phần còn lại của chữ ký. –
Điều đó thực sự gọn gàng! Tôi chưa có cơ hội thử viết tắt của Tomas. Cám ơn vì sự gợi ý! – Perrako
@Tomas - bắt tốt, trông đẹp hơn nhiều. – kvb