Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中的这个装箱示例中发生了什么?_C#_.net_Boxing_Unboxing - Fatal编程技术网

C# 在C中的这个装箱示例中发生了什么?

C# 在C中的这个装箱示例中发生了什么?,c#,.net,boxing,unboxing,C#,.net,Boxing,Unboxing,Jon Skeet发表了一篇有趣的文章,题目是:他对输出整数值的不同方式的性能进行了基准测试 我很确定下面的代码是拳击,但是为什么Jon认为它不是拳击呢?他的例子在最后 int i = 5; object o = i; Console.WriteLine("Number is: {0}", o); Jon页面中的示例: #if CONSOLE_WITH_BOXING Console.WriteLine("{0} {1} {2}", i, i, i);

Jon Skeet发表了一篇有趣的文章,题目是:他对输出整数值的不同方式的性能进行了基准测试

我很确定下面的代码是拳击,但是为什么Jon认为它不是拳击呢?他的例子在最后

int i = 5;
object o = i;
Console.WriteLine("Number is: {0}", o);
Jon页面中的示例:

#if CONSOLE_WITH_BOXING
            Console.WriteLine("{0} {1} {2}", i, i, i);            
#elif CONSOLE_NO_BOXING
            object o = i;
            Console.WriteLine("{0} {1} {2}", o, o, o);
#elif CONSOLE_STRINGS
            string s = i.ToString();
            Console.WriteLine("{0} {1} {2}", s, s, s);
p.S.没有回答我的问题


谢谢。

这是拳击,唯一的区别是在哪一条线上进行:

没有看到:

拳击:

object o = i;
或考虑

三个盒子:

Console.WriteLine("{0} {1} {2}", i, i, i);
一个拳击:

object o = i;
Console.WriteLine("{0} {1} {2}", o, o, o);

你刚刚删除了你以前的问题并报告了吗?是的,我删除了,因为它被标记为重复,所以我没有编辑,而是删除了它并发布了一个新的问题。可能是重复的不重新发布。请在原始帖子中告诉我为什么你认为它不是副本。让我直说吧:你删除了一个问题以抗议它被标记为副本,然后继续转发?这难道不会让你的问题重复吗?谈论一个自我实现的预言。完美!这是有道理的。
object o = i;
Console.WriteLine("{0} {1} {2}", o, o, o);