Tại sao các toán tử gán (+ =, - =, * =,/=) quá tải trong VB.NET?Tại sao các toán tử gán quá tải trong VB.NET?
Trả lời
lẽ this là lập luận của họ:
Cảm ơn đã gợi ý! Chúng tôi không cho phép bạn quá tải toán tử gán cho một loại vì hiện tại không có cách nào để đảm bảo rằng các ngôn ngữ khác hoặc Khuôn khổ .NET sẽ tôn vinh toán tử gán. Cách thay thế duy nhất là hạn chế những loại mà quá tải toán tử gán có thể làm, nhưng chúng tôi cảm thấy rằng điều này sẽ quá hạn chế để có thể hữu ích nói chung.
Cảm ơn! Paul Vick lãnh đạo kỹ thuật, VB
Có điều gì đó gọi là 'Thu hẹp' và 'Mở rộng' cho phép bạn xác định chuyển đổi ngầm và rõ ràng từ loại này sang loại khác, ví dụ:
Dim y as MyClass1
Dim x as MyClass2 = y
Nhưng điều đó không hãy thay đổi toán tử gán để gán một thể hiện của cùng một lớp, chỉ chuyển đổi các lớp khác.
Xem How to: Define a Conversion Operator
Class MyClass1
Public Shared Widening Operator CType(ByVal p1 As MyClass1) As MyClass2
End Operator
End Class
+=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
khai thác Chuyển nhượng không thể bị quá tải, nhưng + =, ví dụ, được đánh giá sử dụng +, có thể bị quá tải .
=, ., ?:, ??, ->, =>, f(x), as, checked, unchecked, default, delegate, is, new, sizeof, typeof
Những nhà khai thác không thể bị quá tải.
Với cùng conversion operators:
struct MyType1
{
...
public static explicit operator MyType1(MyType2 src) //explicit conversion operator
{
return new MyType1 { guts = src.guts };
}
}
Vé bị đóng là "Không khắc phục" trong năm 2004 - rofl. Đây là hy vọng họ đã xem xét lại đề xuất. – Alain
Có phải không? http://stackoverflow.com/questions/292676/is-there-a-workaround-for-overloading-the-assignment-operator-in-c – Alain
C# không hỗ trợ quá tải của nhà điều hành: http://msdn.microsoft. com/vi-us/library/8edha89s.aspx.Cách giải quyết ish là quá tải toán tử '+', vì + = sử dụng nó, nhưng bạn vẫn không thể quá tải '='. – Alain
- 1. Toán tử gán quá tải trong C++
- 2. Toán tử gán chồng quá tải C++
- 3. Tại sao toán tử gán bản sao quá tải cho một lớp singleton trong C++?
- 4. Quá tải toán tử
- 5. Tại sao toán tử gán quá tải trở lại tham chiếu đến lớp?
- 6. Boolean và String quá tải của toán tử gán (C++)
- 7. Khi nào sử dụng toán tử gán quá tải?
- 8. toán tử [] = quá tải?
- 9. Quá trình toán tử C++ quá tải
- 10. quá tải toán tử ->
- 11. C++: Toán tử quá tải =
- 12. Tại sao các toán tử không thể bị quá tải bên trong một lớp tĩnh?
- 13. Toán tử quá tải + trong C++
- 14. C++ toán tử == quá tải
- 15. Toán tử quá tải trong F #: (/)
- 16. các toán tử gán nhiệm vụ quá tải khi lớp là con
- 17. Quá tải toán tử trong .NET
- 18. Quá tải toán tử trong C++
- 19. Quá tải toán tử trong Java
- 20. Tại sao toán tử gán trả về giá trị đã gán trong C#?
- 21. Toán tử gán bổ sung quá tải trong C++ cho hai/nhiều hơn hai đối tượng?
- 22. quá tải toán tử cho các thao tác
- 23. Scala: phương thức \ toán tử quá tải
- 24. Cách đơn giản để quá tải toán tử gán phức trong C#?
- 25. Có cách giải quyết nào để quá tải toán tử gán trong C# không?
- 26. Tại sao các toán tử phân chia (/) hoạt động khác trong VB.NET và C#?
- 27. Java?: Toán tử trong vb.net
- 28. Quá tải toán tử + = sự kiện
- 29. Tại sao F # không cung cấp quá tải tùy chỉnh cho toán tử ==?
- 30. Quá tải php bằng toán tử
@ Mr.Disappointment - Yup, phát hiện ra rằng bản thân mình. Bạn có thể chỉ ra nơi trong bài viết đó nó nói lý do tại sao các toán tử gán không quá tải? – user1351569
@ Mr.Disappointment - Nghĩ rằng bạn có thể đã đọc một điều tôi đã bỏ lỡ. – user1351569
Đã thêm một số nội dung về trình chuyển đổi ẩn/rõ ràng có thể trợ giúp với bất kỳ điều gì bạn có thể đang cố gắng thực hiện. – Alain