zoukankan      html  css  js  c++  java
  • 值类型和引用类型的区别?(转)

    C#的样例代码

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace ConsoleApplication1
    {
        class Person
        {
            public int Blood = 10;   
        }

        class Program
        {
            public static void Add(int x)
            {
                x += 10;
                Console.WriteLine("值类型当参数被传递并修改之后:"+x);
            }

            public static void Add(Person person)
            {
                person.Blood += 10;
                Console.WriteLine("引用类型当参数被传递并修改之后:" + person.Blood);
            }

            static void Main(string[] args)
            {
                //值类型变量
                int i = 10;

                Console.WriteLine("i的原值:" + i);
                Add(i);
                Console.WriteLine("但是i的值并没有因为函数的修改而修改:" + i);

                //引用类型变量
                Person person = new Person();

                Console.WriteLine("Blood的原值:" + person.Blood);
                Add(person);
                Console.WriteLine("但是Blood的值因为函数的修改而修改:" + person.Blood);

                //值类型和引用类型的区别,就在于当函数参数传递的时候.
                //值类型是把自己的值复制一份传递给别的函数操作.无论复制的值怎么被改变.其自身的值是不会改变的
                //而引用类型是把自己的内存地址传递给别的函数操作.操作的就是引用类型值的本身.所以值被函数改变了.
                //这就是传值和传址的区别

                Console.ReadLine();
            }
        }
    }

    软件人生-------男装、女装这几天有新款上市哦,大家有兴趣进来看看http://icefish.taobao.com/
  • 相关阅读:
    P4146 序列终结者(Splay树)
    P2617 Dynamic Rankings(树套树)
    P4168 [Violet]蒲公英(分块魔术)
    P3649[APIO2014]回文串(回文自动机)
    [IOI2011]Race(树上启发式合并)
    CentOS 7安装 .net core 环境 官网说明地址
    宝塔 Linux 面板php.ini文件在哪个目录
    KPPW部署一直提示No input file specified的Apache伪静态设置
    【分享】 MPSoC的VCU超频
    Versal AIE 上手尝鲜 2 -- Linux例程
  • 原文地址:https://www.cnblogs.com/IcefishBingqing/p/1826075.html
Copyright © 2011-2022 走看看