摘要:在C# FAQ中看到一篇讨论types polymorphic的随笔。
这个问题还真是有一点迷惑性。我的第一感觉是,用类似public static void Swap(object a, object b);这样的代码就能实现两个object的交换了,因为object是reference type。可是动手试过和看过讨论之后才知道这样是不行的。
实际上,public static void Swap(ref object a, ref object b);的IL是:
.method public hidebysig static void Swap(object& a, object& b) cil managed
而public static void Swap(object a, object b);的IL是:
.method public hidebysig static void Swap(object a, object b) cil managed真正的type polymorphic的解法,自然是Generics了。...[
阅读全文]