Tự hỏi tại sao bạn cho rằng một loại thường được phân bổ trên ngăn xếp sẽ kế thừa từ System.Object
và tôi nghĩ bạn sẽ không thể xây dựng một lý do chính đáng.
Nếu bạn cho rằng đó là do đối tượng loại xác định vị trí được phân bổ, bạn nhầm. Thành viên nào của ValueType
có trách nhiệm xác định cơ chế phân bổ của nó? (? Có gì thành viên của System.Object
, cho rằng vấn đề)
Loại thừa kế trong .NET có nghĩa vụ phải bao gồm "là một" các mối quan hệ: a string
là mộtobject
, ví dụ. Tất cả mọi thứ trong thế giới NET là một object
, vì vậy một int
là một object
, một double
là một object
vv
Bạn có thể nghĩ về điều này trong điều khoản của Liskov substitution principle: nếu tôi viết mã mà hy vọng an object
, tôi phải có khả năng giao dịch với bất kỳ loại nào mà là an object
—tất cả mọi thứ. Mã của tôi nên không kém phần thoải mái với một string
, một int
, một List<int>
vv
Cũng lưu ý rằng object
đảm bảo chắc chắn rằng các thành viên tất cả các loại có như một hệ quả của việc này: GetType
, ToString
, và GetHashCode
.
Nguồn
2011-01-18 21:23:46
Possi ble duplicate .... http: //stackoverflow.com/questions/436211/is-everything-in-net-an-object/436246 –
Tất cả các loại của bạn thuộc về chúng tôi! –