Như tôi đã biết, mọi thứ bắt nguồn từ đối tượng ngoại trừ giao diện trong .net. Nhưng tôi nhận thấy rằng khi tôi nhấn "." sau tên giao diện Phương thức equals xuất hiện. Và khi tôi nhấn F12 cho phương thức equals, nó hướng tới phương thức equals trong lớp đối tượng. Nếu các giao diện không xuất phát từ lớp đối tượng, thì bằng phương thức nào đến từ đâu?Bằng phương pháp trong giao diện
Trả lời
giao diện chỉ có thể ở trên các đối tượng.
Bất kỳ loại nào sẽ triển khai giao diện cuối cùng đều xuất phát từ đối tượng, do đó Equals luôn được xác định.
Tại sao phương thức ToString() không có sẵn? –
Nó có sẵn. –
Từ phần 13,2 của C# 4 spec:
Lưu ý rằng các thành viên trong đối tượng lớp không, nói đúng ra, các thành viên của giao diện bất kỳ (§13.2). Tuy nhiên, các thành viên trong lớp đối tượng có sẵn thông qua tra cứu thành viên trong bất kỳ loại giao diện (§7.4).
Và phần 7.4:
- Đầu tiên, một tập hợp của các thành viên truy cập tên là N được xác định:
- ...
- Nếu không, các thiết lập bao gồm tất cả các truy cập (§ 3.5) các thành viên có tên là N trong T, bao gồm các thành viên được thừa kế và các thành viên có thể truy cập có tên là N trong đối tượng. [...]
Và phần 7.4.1:
Đối với mục đích tra cứu viên, một kiểu T được coi là có các loại cơ sở sau đây:
...
• Nếu T là kiểu giao diện, các kiểu cơ sở của T là các giao diện cơ sở của T và đối tượng kiểu lớp.
Về cơ bản nó là một kẹo mềm, để cho trình biên dịch hiểu rằng các thành viên của object
sẽ luôn thực sự có sẵn tại thời gian thực hiện, mặc dù họ không thực sự thành viên của kiểu của biểu thức có liên quan cho các giao diện.
+1 john cho đặc tả kỹ thuật số C# 4 ...... –
Thêm vào đó chỉ có ý nghĩa khi có các thành viên này. – ChaosPandion
- 1. Phương pháp trả về một giao diện
- 2. Jackson serialize chỉ phương pháp giao diện
- 3. Phương thức giao diện Java Phương pháp: Mỗi lớp có thực hiện một giao diện không?
- 4. Phương pháp nào thực hiện giao diện đệm trong Python?
- 5. Phương pháp tĩnh trong giao diện/lớp trừu tượng
- 6. phương pháp cụ thể trong các giao diện Java1.8
- 7. Cùng một phương pháp trong giao diện và Abstract class
- 8. @AspectJ pointcut cho các phương pháp ghi đè phương thức giao diện bằng chú thích
- 9. Sử dụng Moq để Stub một phương pháp giao diện
- 10. Giao diện mở rộng giao diện khác nhưng thực hiện phương pháp của nó
- 11. Strongly-typed giao diện phương pháp sử dụng yield return
- 12. tên phương pháp với giao diện thông thạo
- 13. Rails giao diện điều khiển - sử dụng IMAGE_TAG phương pháp
- 14. Giao diện, Tóm tắt hoặc chỉ các phương pháp ảo?
- 15. Phương pháp chung C# với thừa kế và giao diện
- 16. Giao diện thực hiện với lập luận phương pháp superclasses
- 17. Một phương pháp tạo giao diện trò chơi đơn giản
- 18. C# giao diện phương pháp tĩnh gọi với Generics
- 19. Thực hiện enum trong C# Giao diện và một trong những giao diện của phương pháp chữ ký
- 20. So sánh: phương pháp giao diện so với phương pháp ảo so với phương pháp trừu tượng
- 21. Làm cách nào để triển khai giao diện một cách rõ ràng bằng phương pháp ảo?
- 22. Phương thức khởi tạo trong giao diện
- 23. Thực thi "bằng" trong giao diện
- 24. StarUML định nghĩa các phương thức và thuộc tính giao diện trong biểu tượng giao diện?
- 25. javax.ejb.EJBException: bất hợp pháp truy cập phương pháp phi kinh doanh trên không giao diện xem
- 26. phương pháp tĩnh không thể triển khai phương thức giao diện, tại sao?
- 27. Giao diện có phương thức toString không?
- 28. C# constructor trong giao diện
- 29. phương pháp Generic trở về giao diện chung trong Delphi 2010
- 30. một phương pháp trừu tượng là những gì trên một giao diện trong java
Tôi không tin điều này sẽ trả lời rõ ràng câu hỏi. – ChaosPandion