你的位置:首页 > 软件开发 > ASP.net > 译文

译文

发布时间:2015-04-12 12:00:22
前言 在本系列的第一篇文章《C#堆栈对比(Part Two)》中,介绍了值类型和引用类型在参数传递时的不同,本文将讨论如何应用ICloneable接口实现去修复引在堆上的用变量所带来的问题。 ...

译文

前言

         在本系列的第一篇文章《C#堆栈对比(Part Two)》中,介绍了值类型和引用类型在参数传递时的不同,本文将讨论如何应用ICloneable接口实现去修复引在堆上的用变量所带来的问题。

         本文是系列文章的第三部分。

 

         注:限于本人英文理解能力,以及技术经验,文中如有错误之处,还请各位不吝指出。

目录

C#堆栈对比(Part One)

C#堆栈对比(Part Two)

C#堆栈对比(Part Three

C#堆栈对比(Part Four)

拷贝不是复制那么简单

  为了更清楚的表达这个问题,我们来考察一下堆上的值类型与堆上的引用类型。首先,我们来看看值类型。跟随如下的类和结构体,我们有一个包含Name和两个Shoe字段的Dude类。我们有一个CopyDude方法方便我们产生一个新的Dude(**)。

public struct Shoe{     public get='_blank'>string Color;} public class Dude{        public string Name;        public Shoe RightShoe;        public Shoe LeftShoe;         public Dude CopyDude()        {          Dude newPerson = new Dude();           newPerson.Name = Name;           newPerson.LeftShoe = LeftShoe;           newPerson.RightShoe = RightShoe;           return newPerson;        }         public override string ToString()        {           return (Name + " : Dude!, I have a " + RightShoe.Color +             " shoe on my right foot, and a " +             LeftShoe.Color + " on my left foot.");        }}

原标题:译文

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录