代码成了意大利面条,速度成了老牛拉车,痛过之后才发现自己忘了某大虾的至理名言---勿以浮沙筑高台,从现在开始恶补基础
,先提几个问题1.实例化对象的方法有哪些?除了NEW,反射,反序列化,CLONE外还有哪些方法?
2. 值类型与引用类型,值类型继承与Object类,Object类属于引用类型,那么
值类型就是引用类型?

解决方案 »

  1.   

    1 工厂
    2 ValeType继承Object,继承ValueType的都是值类型
      

  2.   

    谢谢foyuan(暴走零零漆)大侠这个问题我还是不是很清楚,既然Object是一切类型的根,而Object属于引用类型为什么还要
    划分值类型和引用类型,难道 ValeType继承Object时没有继承Object的类型
      

  3.   

    ValueType 用更合适的值类型实现重写 Object 中的虚方法。请参见从 ValueType 继承的 Enum。
    ==============================================================
    MSDN里面有提到,既然想补基础,先翻文档比较好,一般比别人说的要详细,而且看懂了,印象就深
      

  4.   

    各位大侠们问一下反射,反序列化,CLONE外还有工厂是如何实例化对象的;各有什么优点和缺点;小弟是个菜鸟,谢谢;
      

  5.   

    2. 值类型与引用类型,值类型继承与Object类,Object类属于引用类型,那么
    值类型就是引用类型?值类型就是值类型,与引用类型没有关系.值类型到引用类型转换有一个"拆箱与装箱"过程,有时这个转换是自动完成的,所以让人误解.
      

  6.   

    谢谢各位的帮助
    其实到现在小弟仍然不是很明白,估计很多人同样不明白,
    System.Object
       System.ValueType
    可以看到继承于ValueType的均为值类型,ValueType本身继承了Object类,Object类属于引用类型,一个值类型如Int32它是继承ValueType的,因此Int32是值类型,但他同时它的最根基类是
    Object类,Object类属于引用类型,试问一下,Int32既是值类型又是引用类型,好像我是钻牛
    角了,但好像还没有看到哪本书提出过这个问题,难道ValueType是NET中一个特别处理的类型?
      

  7.   

    我觉得我这样理解可不可以?
    System.Object
       System.ValueType
          System.Enum
    public abstract class Enum : IComparable, IFormattable,   IConvertible
    Enum是引用类型
    System.Object
       System.ValueType
          System.Boolean
    public struct Boolean:IComparable,IConVertible
    Boolean是值类型
    分析enum和Boolean的区别
    就是struct 和 class的 区别
    这样我就是不是可以这样认为
    定义为struct的就是值类型
    定义为class的就是引用类型
    那么我从上面的描述还是看不到enum和Boolean是从ValueType继承啊?
      

  8.   

    [SerializableAttribute] 
    [ComVisibleAttribute(true)] 
    public abstract class Enum : ValueType, IComparable, IFormattable, IConvertible
      

  9.   

    我在msdn里面好象没有看到这样的描述
      

  10.   

    C#
    [SerializableAttribute] 
    [ComVisibleAttribute(true)] 
    public abstract class Enum : ValueType, IComparable, IFormattable, IConvertible这个东西要在 microsoft的网站上面才能看到
    和我的msdn描述有点不同
    enum是唯一从ValueType继承的引用类型,而其他的从ValueType继承的都是值类型
      

  11.   

    关于ValueType的问题,应该从继承自哪个类来看,value types继承自ValueType,而编译器在这里做了手脚,使value types具有"分配在stack""不需要new"等特点,变成值类型,它们的直接父类ValueType仍然是引用类型.
      

  12.   

    可以参考
    http://www.cnblogs.com/mail-ricklee/archive/2007/07/26/832670.html
      

  13.   

    public struct Int32 : IComparable, IFormattable, IConvertible, 
    IComparable<int>, IEquatable<int>struct 类型是一种值类型,通常用来封装小型相关变量组可见 int 是值类型
      

  14.   

    值类型不用new.引用类型需要new
    值类型在栈中,引用类型在堆中.
    楼主的问题我也解释不清,不过猜测是编译器和CLR做了一些事情.而不单单是语言的语法问题了.
      

  15.   

    目前为止 序列化只用到了dataset的序列化,无非就是将数据整理成通用的数据模型(xml with schema).简单点就是转成xml  至于实现的机制还没有去研究他.反序列化就是反操作咯.值类型和引用类型,两者的不同点不多. 一般使用中几乎是一样的,当然类操作中的虚拟 反射 多态等特性值类型是没有的 
    值类型在大量的数据操作时资源消耗比引用类型少.速度快不快没考究过,应该是快的.
      

  16.   

    enum是唯一从ValueType继承的引用类型
    ------------------------------
    纠正一下,enum是值类型的。
    值类型在大量的数据操作时资源消耗比引用类型少
    -----------------------------------------
    这个应该是说反了。
    值类型在栈中,引用类型在堆中的说法不知道是谁提出来的,比较片面。