Thỉnh thoảng khi tôi gọi phương thức .ToString()
của lớp, nó trả về tên đầy đủ của lớp. Nhưng đối với một số lớp/struct's (như Int32
) nó trả về một chuỗi correspoding cho đối tượng (giá trị của số nguyên). Điều này có nghĩa là lớp Int32
ghi đè phương thức ToString()
và các lớp trả về tên đủ điều kiện không ghi đè lên tên đó, nhưng thay vào đó chỉ cần gọi phương thức của cơ sở là (Object
)? Việc triển khai Object.ToString()
có trả lại tên đầy đủ của lớp không?Phương thức .ToString() hoạt động như thế nào?
Trả lời
Đôi khi tôi gọi phương thức
ToString
nó sẽ trả về tên đầy đủ của các loại thời gian chạy của đối tượng đã nhận được cuộc gọi.
Đúng.
Nhưng đối với một số loại, chẳng hạn như
System.Int32
,ToString
trả về giá trị của người nhận được chuyển đổi thành chuỗi.
Đúng.
Cấu trúc
System.Int32
có ghi đè phương phápToString
không?
Có.
Do loại khác mà
ToString
phương pháp trả lại loại tên đầy đủ trình độ không overrideToString
?
Đó có thể là trường hợp, có. Tất nhiên, họ có thể ghi đè lên phương thức và có phương thức ghi đè thực hiện chính xác điều tương tự như phương thức lớp cơ sở, nhưng điều đó sẽ là một chút vô nghĩa.
Vì vậy, trong những trường hợp đó, gọi
ToString
chỉ gọi thiSystem.Object
củaToString
, mà trả về tên đầy đủ?
Đúng.
Bạn dường như nắm vững cách hoạt động của tính năng này. Chỉnh sửa duy nhất của tôi là lưu ý rằng System.Int32
là struct, không phải là lớp.
Tôi đã chỉnh sửa ngay bây giờ nhờ – deen
@Ala: Bạn có hỏi tôi tại sao một người nào đó đã downvoted câu hỏi của bạn không? Có lẽ vì nó được trả lời ** trên trang tài liệu cho phương thức ToString **. Nếu bạn có câu hỏi về phương pháp, hãy thử đọc tài liệu về phương pháp đó; nếu nó không trả lời câu hỏi của bạn thì hãy thử tìm kiếm trên web hoặc trang web này để có câu trả lời. Thay vì yêu cầu mọi người dành thời gian trong ngày bận rộn của họ để trả lời câu hỏi của bạn, hãy tự mình làm một mức nghiên cứu cơ bản, tối thiểu trước tiên. –
Tôi không hiểu bạn. Bạn trả lời từng dòng đúng không? Đây là câu trả lời tôi mong đợi – deen
Bạn thậm chí đã cố tìm kiếm câu trả lời cho câu hỏi của mình chưa?
http://msdn.microsoft.com/en-us/library/system.object.tostring.aspx
ToString là phương pháp định dạng lớn trong .NET Framework. Nó chuyển đổi một đối tượng thành biểu diễn chuỗi của nó sao cho nó phù hợp để hiển thị. (Để biết thông tin về định dạng hỗ trợ trong .NET Framework , xem Định dạng các loại.)
Việc thực hiện mặc định của phương pháp ToString trả về tên đầy đủ trình độ của các loại đối tượng, như ví dụ sau chương trình.
Vì đối tượng là lớp cơ sở của tất cả các loại tham chiếu trong .NET Framework, hành vi này được kế thừa bởi các loại tham chiếu không ghi đè phương thức ToString. Ví dụ sau đây minh họa điều này. Nó định nghĩa một lớp có tên là Object1 chấp nhận thực thi mặc định của tất cả các thành viên đối tượng. Phương thức ToString của nó trả về tên loại hoàn toàn đủ điều kiện của đối tượng .
Ít điểm liên quan đến phương thức ToString() trong C#.
Phương thức ToString() được định nghĩa trong lớp System.Object cơ sở và do đó có sẵn cho tất cả các loại và thông số sử dụng.
Việc triển khai mặc định ToString() do lớp cơ sở system.object cung cấp sẽ cung cấp cho bạn tên đầy đủ của loại bao gồm không gian tên.
Nếu bạn không muốn triển khai mặc định, thì bạn có thể ghi đè phương thức ToString(). Có ToString() phương pháp là overridable. Và bạn ghi đè nó ở đâu? Bạn ghi đè lên nó trong lớp mà bạn không muốn thực hiện mặc định của nó.
- 1. Phương thức .delay của jQuery hoạt động như thế nào?
- 2. Phương thức Wicket setResponsePage() hoạt động như thế nào?
- 3. Pthread_key_t và phương thức pthread_key_create hoạt động như thế nào?
- 4. Phương thức hashCode() của java hoạt động như thế nào?
- 5. Phương thức ảo hoạt động như thế nào trong C#?
- 6. Phương thức khởi tạo tĩnh hoạt động như thế nào?
- 7. Phương thức phản đối này hoạt động như thế nào?
- 8. Các biểu thức lambda hoạt động như thế nào?
- 9. Phương thức thay thế không hoạt động
- 10. Phương thức nào hoạt động trong Groovy?
- 11. Cách Queryable.OfType hoạt động như thế nào?
- 12. GetContentResolver() hoạt động như thế nào?
- 13. Quá tải phương thức. Làm thế nào nó hoạt động?
- 14. Phương thức kết hợp đường ray hoạt động như thế nào?
- 15. Phương thức equals của Scala hoạt động như thế nào trong trường hợp của Danh sách?
- 16. Phương thức tương đương của mảng hoạt động như thế nào?
- 17. Độ phân giải tên phương thức defrecord của clojure hoạt động như thế nào?
- 18. Các phương thức tĩnh được đồng bộ hóa hoạt động như thế nào trong Java?
- 19. waitUntilObjectExists() Phương thức SDK PHP của Amazon S3, chính xác nó hoạt động như thế nào?
- 20. Tham số phương thức bộ điều khiển MVC của Spring hoạt động như thế nào?
- 21. Giao diện có phương thức toString không?
- 22. 'typeof' hoạt động như thế nào?
- 23. Hàng đợi.js hoạt động như thế nào?
- 24. Các phương thức đối tượng toString(), ==, equals() hoạt động khác nhau hoặc tương tự như thế nào trên các kiểu tham chiếu và nguyên thủy?
- 25. .NET profilers hoạt động như thế nào?
- 26. Firebug hoạt động như thế nào?
- 27. LINQ Last() hoạt động như thế nào?
- 28. F # inline hoạt động như thế nào?
- 29. IP geolocating hoạt động như thế nào?
- 30. Nén MPEG4 hoạt động như thế nào?
Có, bạn đã đúng. – MarcinJuraszek
Câu hỏi là gì? Có phải là "sự hiểu biết của tôi có đúng không?"? –