none
请问从system.objec.MemberwiseClone()派生出的方法利用的是什么技术? RRS feed

答案

  • Wavetekgroup 你好,

    MemberwiseClone()方法是Object类的一个受保护方法,实现了对象的浅拷贝。
    受保护的MemberwiseClone()方法返回目前对象的一个浅拷贝,该方法不能被子类重写。浅拷贝仅仅是对象的一份按位拷贝,也就是说,对该对象里面的值类型变量进行赋值拷贝,对该对象里面的引用类型变量进行句柄拷贝,这样拷贝后的引用变量将持有对同一块内存的引用。

    关于this关键字,它是指向当前的类,所以加不加this都可以,没有什么区别,不加的话默认就是this。

    希望这些对你有帮助。

    Mio


    Mio Miao[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月15日 8:55
    版主
  • (Person)是把MemberwiseClone()方法返回的Object类强制转换为Person类。是Object类向Person类的类型转换。


    Mio Miao[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月15日 9:39
    版主
  • (Person)Object 这样是不行的,引用类型之间的强制转换,是更改该对象的引用的值的类型,也就是说(Person)后面不是跟Object类,而是跟Object类的对象。MemberwiseClone()方法返回目前对象的一个浅拷贝,(Person)是把这个返回的对象进行强制类型转换。具体关于强制类型转换你可以参考这个链接:http://msdn.microsoft.com/zh-cn/library/ms173105.aspx


    Mio Miao[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月15日 10:44
    版主

全部回复

  • Wavetekgroup 你好,

    MemberwiseClone()方法是Object类的一个受保护方法,实现了对象的浅拷贝。
    受保护的MemberwiseClone()方法返回目前对象的一个浅拷贝,该方法不能被子类重写。浅拷贝仅仅是对象的一份按位拷贝,也就是说,对该对象里面的值类型变量进行赋值拷贝,对该对象里面的引用类型变量进行句柄拷贝,这样拷贝后的引用变量将持有对同一块内存的引用。

    关于this关键字,它是指向当前的类,所以加不加this都可以,没有什么区别,不加的话默认就是this。

    希望这些对你有帮助。

    Mio


    Mio Miao[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月15日 8:55
    版主
  • 那么 (Person)是啥意思呢?是Object类向Person类的类型转换吗?
    万物皆变,规则永恒。
    2011年3月15日 9:25
  • (Person)是把MemberwiseClone()方法返回的Object类强制转换为Person类。是Object类向Person类的类型转换。


    Mio Miao[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月15日 9:39
    版主
  • 哦,谢谢,我感觉也是这样的但是没有被转换类型Object不敢确认,但还有疑问那么是不是Object转换成其他类型Object不写,如:(Person)Object(我试了不行),但这又是什么原理呢?类型之间强迫转换不是必须这么写(destinationType)sourceVar吗?


    万物皆变,规则永恒。
    2011年3月15日 10:10
  • (Person)Object 这样是不行的,引用类型之间的强制转换,是更改该对象的引用的值的类型,也就是说(Person)后面不是跟Object类,而是跟Object类的对象。MemberwiseClone()方法返回目前对象的一个浅拷贝,(Person)是把这个返回的对象进行强制类型转换。具体关于强制类型转换你可以参考这个链接:http://msdn.microsoft.com/zh-cn/library/ms173105.aspx


    Mio Miao[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月15日 10:44
    版主
  • 哦,明白了,非常感谢,这个问题纠结偶好几天了,呵呵。
    万物皆变,规则永恒。
    2011年3月15日 11:40
  • 不客气,很高兴可以帮助你。另外,如果你的问题已经解决,你可以考虑把对你有用的回复“标记为答复”,这样也可以帮助论坛里其他和你遇到类似问题的朋友。如果你还有其他新的问题,欢迎你在论坛里继续发帖提问。


    Mio Miao[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月15日 11:49
    版主