Sự khác nhau cơ bản giữa Java và C# trong điều khoản của các lớp bên trong/địa phương/ẩn danh là gì?Sự khác nhau cơ bản giữa Java và C# về các lớp bên trong/địa phương/ẩn danh là gì?
Trả lời
C# không có tương đương với các lớp bên trong Java - nó chỉ có các kiểu lồng nhau (như các lớp lồng nhau "tĩnh" của Java).
Quy tắc truy cập hơi khác nhau - trong Java, lớp bên ngoài có quyền truy cập vào các thành viên riêng của lớp lồng nhau và ngược lại. Trong C# lớp lồng nhau có quyền truy cập vào các thành viên riêng của lớp bên ngoài, nhưng không phải là theo cách khác.
C# không có các lớp bên trong vô danh như Java, nhưng nó không có phương pháp ẩn danh và biểu thức lambda, đó là một cách sạch hơn nhiều để đạt được nhất về những gì các lớp bên trong vô danh thường được sử dụng cho. Việc nắm bắt biến cho hai cơ chế là khác nhau - xem my article on closures để biết thêm chi tiết.
Trong đầu, sự khác biệt lớn nhất là cách chúng (các lớp ẩn danh trong java so với các phương thức nặc danh trong C#) xử lý các ảnh chụp. Trong java, nó bắt giữ giá trị hiện tại của biến (giá trị ban đầu và giá trị bắt được sau đó được tách biệt). Trong C#, bạn nắm bắt chính biến đó. Điều này là gấp đôi lưỡi, và có thể dẫn đến các vấn đề - nhưng là cực kỳ mạnh mẽ khi được sử dụng một cách chính xác.
- 1. Sự khác nhau giữa C# và visual C# là gì?
- 2. Sự khác nhau cơ bản giữa OSGi và Java EE là gì?
- 3. Sự khác biệt cơ bản giữa thu gom rác thải trong C# và Java là gì?
- 4. Sự khác nhau giữa java và jsp là gì?
- 5. Sự khác nhau giữa các đối tượng và các lớp trong C# là gì?
- 6. Sự khác nhau giữa Danh sách và ArrayList là gì?
- 7. Sự khác nhau giữa JavaScript và Java là gì?
- 8. Sự khác nhau giữa Objective-C và Cocoa là gì?
- 9. Sự khác nhau giữa Lịch.WEEK_OF_MONTH và Lịch.DAY_OF_WEEK_IN_MONTH trong lớp Lịch của Java là gì?
- 10. Sự khác nhau giữa Ctrl-C và SIGINT là gì?
- 11. Sự khác nhau giữa C#, .NET và CLI là gì?
- 12. Sự khác nhau giữa ấn bản Orientdb là gì?
- 13. Sự khác nhau giữa Phing và PHPUnderControl là gì?
- 14. Sự khác nhau giữa C: và C:/
- 15. Sự khác nhau cơ bản giữa NSTimer, NSTask, NSThread và NSRunloop là gì?
- 16. Sự khác nhau giữa ssize_t và ptrdiff_t là gì?
- 17. Sự khác nhau giữa NHibernate và iBATIS.NET là gì?
- 18. Sự khác nhau giữa ImageMagick và GraphicsMagick là gì?
- 19. Sự khác nhau giữa các tham chiếu và các đối tượng trong java là gì?
- 20. Sự khác nhau giữa các bản triển khai Bản đồ khác nhau trong Dart là gì?
- 21. Sự khác nhau giữa ODBC và OleDB là gì?
- 22. Sự khác nhau giữa Java và C# và .NET
- 23. Sự khác nhau giữa `Enum.name()` và `Enum.toString()` là gì?
- 24. Sự khác nhau giữa Request.Url.Query và Request.QueryString là gì?
- 25. Sự khác nhau giữa Bộ sưu tập và Danh sách trong Java là gì?
- 26. Sự khác nhau giữa các cơ sở dữ liệu triplestores và đồ thị là gì?
- 27. Sự khác nhau giữa app.doScript và $ .evalFile là gì?
- 28. Sự khác nhau giữa VCS và SCM là gì?
- 29. Sự khác nhau giữa "mutex" và "lock" là gì?
- 30. Sự khác nhau giữa Ứng dụng web Java và Ứng dụng Java Enterprise là gì?
Bản sao của http://stackoverflow.com/questions/521305/why-should-i-learn-c http://stackoverflow.com/questions/325046/java-or-net và nhiều người khác – Welbog
Nó không phải là một dupe - nhìn vào tiêu đề. Nó hỏi về sự khác biệt cụ thể. Tôi sẽ chỉnh sửa câu hỏi để làm rõ hơn. –
Tôi hầu như không nghĩ rằng điều này đủ điều kiện là "trùng lặp chính xác". –