Các công đoàn bị phân biệt đối xử và các kiểu nguyên thủy khác trong F # sử dụng công bằng cấu trúc theo mặc định và cung cấp ghi đè được tạo cho phương thức .Equals. Toán tử equality F # dường như khác với phương thức C# ở chỗ nó sử dụng phương thức .Equals cho các kiểu tham chiếu, nhưng khi các công thức phân biệt F # được sử dụng từ C#, toán tử mặc định == cho đối tượng được sử dụng. sự bình đẳng về cấu trúc.Tại sao F # không cung cấp quá tải tùy chỉnh cho toán tử ==?
Tại sao F # không tạo toán tử tùy chỉnh == cho các loại liên kết bị phân biệt sao cho == đưa ra hành vi mong đợi khi được sử dụng trong các ngôn ngữ .NET khác?
Nhưng chắc chắn, toán tử == phải được xem là khái niệm .NET chứ không phải khái niệm C#, và F # cần chơi tốt với phần còn lại của ... – SoftMemes
Toán tử '==' là C# điều. Họ sử dụng các tên khác nhau ('=' vs '==') chính xác bởi vì chúng làm những thứ khác nhau, và nó được thừa hưởng từ OCaml đã làm điều đó. –
@Jon - trong khi đó là sự thật, nhóm F # đảm bảo rằng toán tử số học phổ biến hoạt động trên các ngôn ngữ (ví dụ: '(+)' được dịch sang 'op_Addition', đó là những gì C# nhận ra). Họ có thể đã tạo ra một phương thức 'op_Equality' dễ dàng. – kvb