查看泛型的IL 我们在开发中经常用到泛型,下面一起通过IL来查看泛型背后做了那些工作 示例代码 示例代码如下: using System; namespace MyCollection { public class GenericExample { public static T GetT<T>(T value) { return value; } public static void Main(string[] args) { int a = GetT(3); string str…
本文是截取自MSDN的文章部分,方便自己查看,原文地址:https://msdn.microsoft.com/zh-cn/library/ms379564(VS.80).aspx 泛型实现 表面上,C# 泛型的语法看起来与 C++ 模板类似,但是编译器实现和支持它们的方式存在重要差异.正如您将在后文中看到的那样,这对于泛型的使用方式具有重大意义. 注 在本文中,当提到 C++ 时,指的是传统 C++,而不是带有托管扩展的 Microsoft C++. 与 C++ 模板相比,C# 泛型可以提供增强…
前言 我们都知道泛型在C#的重要性,泛型是OOP语言中三大特征的多态的最重要的体现,几乎泛型撑起了整个.NET框架,在讲泛型之前,我们可以抛出一个问题,我们现在需要一个可扩容的数组类,且满足所有类型,不管是值类型还是引用类型,那么在没有用泛型方法实现,如何实现? 一.泛型之前的故事 我们肯定会想到用object来作为类型参数,因为在C#中,所有类型都是基于Object类型的.因此Object是所有类型的最基类,那么我们的可扩容数组类如下: public class ArrayExpandab…
上一篇文章学习了IL的入门,接下来我们再通过两个例子来了解下类的属性.构造函数以及接口的使用 一.类的属性.构造函数 1.先看下我们要构建的类的C#代码,然后再进行IL的实现,示例代码如下: [Serializable] public class Dynamic { ; public const string ConstField = "const"; /// <summary> /// 定义属性 /// </summary> public int A { ge…