![]() |
1
66
装箱值只能与完全相同类型的变量解除装箱。这个看似奇怪的限制是一个非常重要的速度优化,使得.NET 1.x在泛型可用之前是可行的。你可以在 this answer . 您不希望跳过多个强制转换环,简单的值类型实现IConvertible接口。通过使用convert类调用:
|
![]() |
2
19
当你这样做的时候,你就隐式地把十进制装箱了。
如果不首先取消装箱,则无法直接强制转换装箱值,这就是为什么直接强制转换为int失败的原因,如下所示:
但是,通过这样做(中间先转换为十进制):
你先拆箱
|
![]() |
3
9
|
![]() |
4
3
你需要考虑的是,拳击和拆箱并不是一种转换。只需将对象类型“环绕”在初始的十进制类型上。这就是为什么在将对象转换为整数之前,需要先取消对象的装箱。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |