zoukankan      html  css  js  c++  java
  • 概念理解之装箱与拆箱

    装箱与拆
        装箱与拆箱是c#类型系统的核心.通过装箱与拆箱操作.能够在值类型与引用类型之间架起一座桥梁.换言之.可以轻松实现值类型与引用类型的相互转换.装相与拆箱能够统一考察类型系统.任何类型的值都可以按照对象进行处理.
    装相:把值类型转换为对象类型,或者转换为由值类型执行的接口类型.把一个值类型的值装箱,也就是创建一个对象并把这个值赋给这个对象.常见的装箱转换有以下4种:
    从任何值类型转换为:1:对象类型,2:system,valueType类型,3:值类型实现的任何接口类型以及从枚举类型转换为system.Enum类型.
    需要注意的是:装箱转换意味着复制一个欲被装相的值.这与引用类型转换为对象类型有着很大的不同.在后者中,转换后的值继续引用同一实例.只是将他当成对象类型而已.
    例子:
    int i=100;
    object obj=i;

    拆箱:拆箱相对于装相是一个反过程,其核心是将一个引用类型显示转换为值类型,或者是将一个借口类型转换为一个实现该接口的值类型.常见的拆箱操作也有4种:1:从对象类型转换为任何值类型2:从system.valueType类型转换为任何接口类型3:从任何接口类型转换为实现该借口的任何值类型4:从system.Enum类型转换为枚举类型.拆箱的过程分为两个步骤:1.检查对象实例是否是给定的值类型的装相值.2.将值从对象实例中复制出来.
    拆箱:
    int i=100;
    object obj = i;
    int j=(int)i;
  • 相关阅读:
    今天开通cnblogs了,留下点印记
    在windows下编译xvidcore
    linux下c文件里使用中文引发的编译错误及解决
    ThinkPad T400
    据说IBM欲64亿收购Sun
    Visual Studio 的 DllImport 缺陷
    再整MySQL的中文UTF8问题
    Webbased/online OCR services and demos
    用FileSystemWatcher实现山寨版Second Copy [1]
    以前的帖子没了??
  • 原文地址:https://www.cnblogs.com/tommyli/p/539882.html
Copyright © 2011-2022 走看看