zoukankan      html  css  js  c++  java
  • 值类型与引用类型的区别

    1.值类型存储的是数值,引用类型存储的是地址。
    2.值类型存放在栈中,引用类型存放在堆中。
    3.值类型不可以是null,引用类型可以使null。
    4.值类型不具有多态性,引用类型具有多态性
    5.值类型没有继承性,引用类型有继承性。
    6.值类型有装箱与未装箱,引用类型只有装箱。
    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();
            }
        }
    }
  • 相关阅读:
    CSS3实现翻转菜单效果
    C语言根据日期取其位于一年中的第几天
    实习第一周小记------生活不易
    [置顶] iOS开发规范
    理解 Neutorn LBaaS
    FWaaS 实践: 允许 ssh
    实践 Neutron FWaaS
    理解 Neutron FWaaS
    应用新安全组
    Neutron 默认安全组规则
  • 原文地址:https://www.cnblogs.com/yinyitianya/p/5692151.html
Copyright © 2011-2022 走看看