Tôi đã sử dụng ToString()
khiêm tốn trong quá khứ và tôi thấy nó rất hữu ích trong nhiều trường hợp. Tuy nhiên, việc sử dụng phương pháp này của tôi sẽ khó biện minh để đưa phương pháp này vào không ai khác ngoài System.Object
. Dự đoán hoang dã của tôi là, tại một số thời điểm trong quá trình thực hiện và các cuộc họp được tổ chức để đưa ra thiết kế ban đầu của khung công tác .NET, nó đã được quyết định là cần thiết - hoặc ít nhất là rất hữu ích - để bao gồm một phương pháp ToString()
sẽ được thực hiện bởi mọi thứ trong khung công tác .NET.Lý do ban đầu cho ToString() trong Java và .NET là gì?
Có ai biết lý do chính xác là gì không? Tôi có thiếu một số tình huống trong đó ToString()
chứng minh đủ hữu ích để trở thành một phần của System.Object
? Lý do ban đầu cho ToString()
là gì?
Cảm ơn rất nhiều!
PS - Một lần nữa: Tôi không nghi ngờ phương pháp hoặc ngụ ý rằng nó không hữu ích, tôi chỉ tò mò muốn biết điều gì làm cho nó hữu ích như được đặt trong System.Object
.
Side note - Hãy tưởng tượng này:
AnyDotNetNativeClass someInitialObject = new AnyDotNetNativeClass([some constructor parameters]);
AnyDotNetNativeClass initialObjectFullCopy = AnyDotNetNativeClass.FromString(someInitialObject.ToString());
Này sẽ không được mát mẻ?
CHỈNH SỬA (1):
(A) - Dựa trên một số câu trả lời, có vẻ như các ngôn ngữ .NET được kế thừa từ Java. Vì vậy, tôi cũng đang thêm "Java" vào chủ đề và các thẻ. Nếu ai đó biết lý do tại sao điều này được thực hiện trong Java thì hãy làm sáng tỏ một chút!
(B) - Giả thiết tĩnh FromString
vs Nối tiếp: chắc chắn, nhưng đó là một câu chuyện hoàn toàn khác, phải không?
FromString = Serialize Deserialize? –
Chắc chắn, nhưng không phải là trực tiếp, righ? –
Câu hỏi hay, và chắc chắn 'System.Object.ToString()' là gây tranh cãi: http://csharptest.net/?p=346 –