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

    ㈠值类型  

      值类型数据主要有:结构体struct,枚举体enum,布尔类型bool,浮点型,整型。

      值类型继承system.ValueType.  值类型保存到栈stack中的是值。  

      值类型不可以包含null值,值类型不可以派生新的类型。  

      值类型变量赋给另一个值类型变量时,将复制包含的值。

    ㈡引用类型 

      引用类型数据主要有:数组,字符串,接口,委托,类。

      引用类型继承sytem.Object.  

      引用类型保存到栈中是地址。  

      引用类型可以派生新的类型。  

      引用类型变量赋值只复制对象的引用,不复制对象的本身。

    如下代码:
        //定义一个类
        public class MyClass
        {
            //声明一个变量
            public int numberA;
        }
    //定义一个结构
        public struct MyValue
        {
            //声明一个变量
            public int numberA;
        }
           static void Main(string[] args)
            {
                MyClass s1 = new MyClass(); //创建一个名为s1的对象,再给对象的变量赋值。
                s1.numberA = 12;
    
                MyClass s2 = s1;//声明一个类对象,名为s2,把s1中的值赋值给s2
                s2.numberA = 222;//把s2中的变量值改为222
    
                Console.WriteLine("s1的值为{0},s2的值为{1}",s1.numberA, s2.numberA);
    
                //创建一个名为r1的对象,再给对象的变量赋值。
                MyValue r1 = new MyValue();
                r1.numberA = 16;
    
                MyValue r2 = r1;
                r2.numberA = 666;
    
                Console.WriteLine("r1的值为{0},r2的值为{1}", r1.numberA, r2.numberA);
    
                Console.ReadLine();
    
            }

    输出:s1  222,   s2   222

       r1  16,     r2   166

  • 相关阅读:
    Windows下好用的git客户端--GitExtentions
    高分辨率下放大netbeans中的小图标
    小书匠使用手册
    win8 telnet VirtualBox中的redhat9
    win8安装新字体
    netbeans设置字体
    win7下Chrome有两个图标的解决方法
    【转】HDU-6035-Colorful Tree
    POJ1703--Find them, Catch them(种类并查集)
    KMP的妙用(利用next数组寻找字符串的循环节)
  • 原文地址:https://www.cnblogs.com/NaiHe0630/p/8818909.html
Copyright © 2011-2022 走看看