首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拳击解拳

拳击解拳
EN

Stack Overflow用户
提问于 2014-12-20 00:01:09
回答 2查看 2K关注 0票数 1

在C#中搜索装箱和取消装箱时,我发现了下面的代码片段。

代码语言:javascript
复制
class TestBoxing
{
    static void Main()
    {
        int i = 123;

        // Boxing copies the value of i into object o. 
        object o = i;  

        // Change the value of i.
        i = 456;  

        // The change in i does not effect the value stored in o.
        System.Console.WriteLine("The value-type value = {0}", i);
        System.Console.WriteLine("The object-type value = {0}", o);
    }
}
/* Output:
    The value-type value = 456
    The object-type value = 123
*/

在这里,它说即使i的值改变了,o的值仍然是same.If,所以o引用的是值"123“,而不是i.Is ?如果o存储了i的值,那么当i的值被更改时,o的值也会发生变化。如果我错了,请纠正我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-20 00:04:41

装箱是将值类型转换为类型对象或由此值类型实现的任何接口类型的过程。当CLR将值类型装箱时,它会将值包装在System.Object中,并将其存储在托管堆中。取消装箱从对象中提取值类型。装箱是隐式的;取消装箱是显式的。装箱和取消装箱的概念是类型系统的C#统一视图的基础,在这种视图中,任何类型的值都可以被视为对象。

代码语言:javascript
复制
int i = 123;
// The following line boxes i. 
object o = i;  

代码语言:javascript
复制
o = 123;
i = (int)o;  // unboxing

请阅读MSDN全文

票数 8
EN

Stack Overflow用户

发布于 2019-12-28 10:15:56

装箱:-例如,将值类型转换为引用类型的过程

代码语言:javascript
复制
int val = 10;
object Obj = val;

取消装箱:-它与装箱完全相反,例如,将引用类型转换为值类型的过程。

代码语言:javascript
复制
int val2 = (int)Obj;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27575610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档