|
|
1
35
Eric Lippert在一篇博客文章中谈到了这一点: Not everything derives from object (这是博客条目的标题;
是的,全部
更新:
从本质上讲,从引用类型派生的值类型没有问题。继承是两者之间的“是一种”关系
. 但是,为了将值类型视为对象实例,必须将其装箱。当您将值传递给需要对象参数的方法时(或者当您调用在中实现的实例方法时),这是隐式完成的
|
|
|
2
8
来自Eric Lippert的帖子:
在C#中,struct是System.ValueType的合成糖,这意味着System.Double派生自System.ValueType。 由于System.ValueType派生自System.Object,因此System.Double也派生自System.Object。 您可以看到,使用.Net Framework源代码或使用.Net Reflector:
在工具栏上,如果选择C#,您将看到(这是您正在看到的): alt text http://bqqqkg.bay.livefilestore.com/y1pk3EAm_SJtl4dn51HLrhdgHAXCS08-xY9nQUARCpT4WnBQyRHD4RLmIK9zZ4okJXMj7Xopg1EBuY_Od7_oWz7Pw/DoubleCSharp.jpg 如果更改组合框并选择IL,您将看到: alt text http://bqqqkg.bay.livefilestore.com/y1pRXk-0rDvFjj7b8EqU9-bydzpWjVGJMq8pDbiCr6aALob3j-aC9vvbeBS4vQRedHJ5Dh2CWtYRCywMJ9FGHOaaw/DoubleIL.jpg 请参见IL中的Double extends System.ValueType |
|
|
3
4
就在几周前 Eric Lippert 关于这一点的博客: Not everything derives from object . 一本好书。 |
|
|
4
3
ValueType 含蓄地 ,这反过来又派生自object。 除此之外,Eric Lippert在上面发布的链接是您想要阅读的。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |