1
5
你很少
装东西,但有时
这样做。在旧版本的.NET中,装箱通常是必需的,因为有些方法只与
在练习中,拳击通常是自动发生的。如果希望让代码的读者更清楚地知道装箱正在发生,可以显式地装箱变量。如果性能可能是一个问题,这可能是相关的。
因为
|
2
0
1) 就其本身而言,意义不大。但是想象一下,你希望以一种通用的方式存储某个东西,而你不知道那个东西是一个值还是一个对象。通过装箱,您可以将值转换为对象,然后将所有内容都视为对象。但是,你需要一个特殊的箱子来保存一个值 或 一个物体。(这在列表之类的容器中最有用,允许您将5之类的值与对文件流之类的对象的引用混合在一起)。 2) 装箱转换通常只隐式发生,除非在说明装箱的示例代码中。 3) WriteLine代码可能调用virtual Object.ToString()方法。如果调用它的对象的类没有重写ToString,那么它将调用基类(对象)实现,但是大多数类型(包括System.Int尽管Int是值类型,但它仍然是从System.Object派生的)重写它以提供更有用的特定于上下文的结果。 |
3
0
装箱值类型没有获得额外的功能,除了它可以通过引用传递给需要它的代码。
我不能自然而然地想到当你需要显式地
它叫
|
4
0
附加功能:对象是一个成熟的对象。您可以调用它的方法并像使用任何其他对象一样使用它:
int变量是值类型,而不是对象。
XXX号:
这是不正确的;请参阅注释。我敢说你用这两种方法的一个区别是
显式装箱:正如您所说,装箱版本是通过将操作对象编码为对象而不是整数来使用的。这就是启用非类型安全通用数据结构的原因。现在类型安全的通用数据结构已经可用,您不太可能进行大量的转换和装箱/拆箱操作。
为什么是“5”:因为对象知道如何使用
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |