格物致知--《Effective C#》读书笔记--验证接口引用指向装箱后的值类型时无需拆箱
来源:互联网 发布:office mac中文破解版 编辑:程序博客网 时间:2024/06/01 12:09
欲验证的结论:接口引用指向装箱后的值类型时无需拆箱。
代码如下:
interface SomeInterface
{
void MethodInInterface();
}
struct OneValueType : SomeInterface
{
public void MethodInInterface()
{
Console.WriteLine("get called");
}
}
class TestUnBox
{
public static void Main()
{
}
private static void CastStruct()
{
OneValueType ovt = new OneValueType();
object o = ovt;//Box
((OneValueType)o).MethodInInterface();
}
private static void CastInterface()
{
OneValueType ovt = new OneValueType();
object o = ovt;//Box
((SomeInterface)o).MethodInInterface();
}
}
其中OneValueType是值类型,它实现了SomeInterface。
两个方法CastStruct和CastInterface分别把装箱之后的值类型转型为OneValueType和SomeInterface。预计的结果是第二个方法无需拆箱,查看IL来验证:
这是CastStruct():
这是CastInterface():
可见,第二个方法中没有unbox指令,结论得证。
2009年7月29日
- 格物致知--《Effective C#》读书笔记--验证接口引用指向装箱后的值类型时无需拆箱
- 格物致知 《Effective C#》读书笔记--验证类型转换
- 格物致知 《Effective C#》读书笔记--验证二进制兼容性
- 格物致知--《Effective C#》读书笔记--验证四种判等方式
- 格物致知--《Effective C#》读书笔记--验证四种判等方式
- 值类型、引用类型、拆箱装箱
- Effective java --读书笔记 -- 拆箱和装箱
- C# 引用类型、值类型与拆箱、装箱
- 引用类型和值类型(装箱和拆箱)
- (转载)接口继承的值类型和引用类型-之装箱
- 栈和托管堆.值类型和引用类型.强制类型转换.装箱和拆箱[C#]
- 栈和托管堆/值类型和引用类型/强制类型转换/装箱和拆箱[C#]
- 栈和托管堆/值类型和引用类型/强制类型转换/装箱和拆箱[C#]
- 6个重要的.NET概念: - 堆栈,堆,值类型,引用类型,装箱和拆箱
- 值类型和引用类型间的转换-装箱和拆箱
- 值类型和引用类型的转换(装箱和拆箱)
- [C#] 值类型的装箱和拆箱
- java引用类型数组的装箱和拆箱
- 光流法的介绍
- TileCache+MapServer+OpenLayers使用方法
- 技术的最高境界,莫过于改变生活,改变世界!
- Spring Hibernate分页
- JSTL安装与使用
- 格物致知--《Effective C#》读书笔记--验证接口引用指向装箱后的值类型时无需拆箱
- Java6学习笔记37——操作zip文件
- JSP标签
- 举报我自己 请把我的ID封了 谢谢
- Java构造时成员初始化的陷阱
- Ajax与Web开发
- Windows下安装Memcached
- JavaScript 数组
- 数据