zoukankan      html  css  js  c++  java
  • 对象之间的引用传递

    1.案例
    首先我们从一个案例开始   引入今天的知识。
     
    先创建一个类Person。
     
    public class Person
    {
           public string Name
           {
                set;
                get;
           }
           public string Age
           {
                set;
                get;
           }
          public void SayHi()
          {
               Console.WriteLine(this.Name+"        "+this.Age);
          }
    }
     
    //调用
    //这种写法叫对象初始化器,算是一个简化的写法。
      Person p1 =new Person()  {Age =18, Name = "Winter"};
      p1.SayHi();       //输出了:   Winter   18
      Person p2 = p1;
      p2.Name = "大傻子";
      P2.Age = 99;
      p1.SayHi();       //输出了:   大傻子   99
      给p2赋值,为什么会影响到p1呢?  这是因为对象间是引用传递的!
    —————————————————————————————————————
    2. 结论
    首先画一幅图来描述一下的过程。
     clipboard[4]
    1. 我们在new出来p1时,系统为我们在堆中开辟了一块内存。  //这个案例中,只new能再内存中开辟内存。
    //↓这也就是为什么说,对象之间是赋值引用。 
    2. Person p2 = p1; 这句话的时候,栈内存中的p2指向了 p1 new出来的堆内存中的区域。
    基本上要说的就是这一幅图。理解了就好。


     
     
     
     
     

  • 相关阅读:
    动态加载js文件以支持跨域脚本
    获取页面宽高的一些代码
    根据dom对象或其id获取对象位置的代码
    Exchange2007用户用户全部访问权限授权命令及验证脚本
    frame页面地址转向跨域解决方法
    过滤掉多余的重复记录的SQL语句
    读写cookie的方法
    识别移动设备脚本
    winrar打包部署程序
    自己动手搭建MinGW
  • 原文地址:https://www.cnblogs.com/mcad/p/4193166.html
Copyright © 2011-2022 走看看