A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘旺 中级黑马   /  2012-7-23 15:35  /  1608 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

装箱是将一个值类型隐式地转换成一个object类型,或把这个值类型转换成一个被该值类型应用的接口类型,把一个值类型的值装箱,就是创建一个object实例并将值复制给这个object
而密封是把类和方法声明为sealed。对于类,表示不能继承该类,对于方法表示不能重写。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

倒序浏览
装箱是将值类型转换为 object 类型或由此值类型实现的任一接口类型的过程。 当 CLR 对值类型进行装箱时,会将该值包装到 System.Object 内部,再将后者存储在托管堆上。

可以使用密封来限制开发人员可以扩展您的框架的方式。 如果密封了某个类,则其他类不能从该类继承。 如果密封了某个成员,则派生类不能重写该成员的实现。 默认情况下,不应密封类型和成员。 密封可防止对库的类型和成员进行自定义,也会影响某些开发人员对可用性的认识。

除非有充分的理由,否则不要密封类。
不要因为预见不到需要扩展某个类的情形,就认为将其密封起来是合适的。

如果类满足如下条件,则应将其密封:

类是静态类。
类包含带有安全敏感信息的继承的受保护成员。
类继承多个虚成员,并且密封每个成员的开发和测试开销明显大于密封整个类。
类是一个要求使用反射进行快速搜索的特性。 密封特性可提高反射在检索特性时的性能。

不要在密封类型中声明受保护成员或虚成员。
如果类型是密封的,则它不能有派生类。 受保护成员只能从派生类进行访问,虚成员也只能在派生类中重写。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
太有才了,值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马