微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果我将int值分配给类对象内部的变量,那么可以将其称为装箱

如何解决如果我将int值分配给类对象内部的变量,那么可以将其称为装箱

在Microsoft文档中,拳击的定义是:

装箱用于将值类型存储在垃圾回收堆中。

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/boxing-and-unboxing#boxing

如果我将int值分配给类对象内的变量,那么我可以将其称为装箱吗?在这种情况下,值类型是从堆栈存储到堆。

namespace ConsoleApp1
{
    class Student
    {
        public int Age;
    }

    class Program
    {
        static void Main(string[] args)
        {
            var age = 10; // inside stack
            var s1 = new Student(); 
            s1.Age = age; // assign the value from stack to heap. is it Boxing?
        }
    }
}

或者装箱仅在值类型存储在System.Object或由值类型实现的任何接口中时发生?

解决方法

不,不是拳击。

堆中的所有内容都必须包含在一个对象中。如果您已经有一个对象(如此处所示),一切都很好。

但是,如果您只想将一个值本身放入堆中,则没有对象可放置。这是当我们通过构造一个刚好包含要包含的对象来“装箱”值时该值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。