Câu hỏi này không tương thích về C#/F # như trong this one.Thực hiện đúng F # Unit trong C#
Tôi muốn biết cách thích hợp để triển khai loại như F# Unit thay vì sử dụng void
.
Rõ ràng là tôi sẽ hủy kết quả này và tôi sẽ không để lộ loại này cho thế giới bên ngoài.
Tự hỏi liệu một lớp trống có thể mạo danh vai trò này hay không.
internal class Unit
{
}
Ví dụ: trong thư viện language-ext, tác giả đã sử dụng struct
.
Có lợi ích nào trong lựa chọn này không?
Giá trị cấu trúc và giá trị lớp luôn là gần như giống nhau về hiệu suất, nhưng giá trị cũ có thể bị giới hạn ở một giá trị số ít trong khi giá trị thứ hai không thể (không và không null). 'Đơn vị lớp trừu tượng bên trong 'sẽ là một ý tưởng tốt hơn ... – ildjarn
Bạn có thể quan tâm đến việc triển khai RX: https://github.com/Reactive-Extensions/Rx.NET/blob/master/Rx.NET/Source/ System.Reactive.Core/Reactive/Unit.cs – Foole
@idjarn, xin lỗi tôi đã không hiểu những gì bạn có nghĩa là ... Bạn đang nói rằng một loại giá trị là tốt hơn bởi vì không thể được thiết lập để 'null' (nếu không được đóng hộp một cách rõ ràng)? – gsscoder