类型转换在.net内部是怎么实现的
比如说我们用Hashtable存数据
存入的都是object 他没有原类型的属性
当转换回原类型 那些属性的值还是存在的
在为object类型时 这些值存在那里
还有就是两个引用类型 除了函数 属性的区别之外
还有什么内在区别
请高手指点 给资料看也行

解决方案 »

  1.   

    http://msdn2.microsoft.com/zh-cn/library/25z57t8s(vs.80).aspx
      

  2.   

    虽然存的都是object类型,但别的那些属性还在他们该在的地方,而只让你看到object有的属性。
      

  3.   

    存 了这些属性信息 应该也存了这些属性的值在堆上的具体地址
    被转换成 object 的时候这些信息还在栈上? 
    只是不显示?
      

  4.   

    虽然值类型变量放在栈上,引用类型的内容放在堆上,
    但属性能不能看到跟放在哪没关系,存成object是因为object是所有类型的最终基类
      

  5.   

    存的不是object,是你实际的类型。 类型有编译型类型和运行时类型, 你在写代码的时候,你看到就是编译型的类型,但是你可以通过反射访问到运行时的类型。 因为object是任何类型的基类型,所以可以用object表示所有的类型。
    所以他们之间更本没有什么转换,本来就是一个东西。
    如果你理解继承,就像你经常会用 IList list = new Array(); array实现了IList,则你可以用(Array)List来使用Listc#里面所谓转换是指boxing和unboxing,是指值类型和引用类型的相互转换,他们之间的存储方式和访问方式不同,所以存在转换问题。