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

  • 相关阅读:
    第四章 利用函数实现指定的功能
    5-7 点到原点的距离(多态)
    5-2 宠物的生长(多态)
    5-7 学生cpp成绩统计
    5-6 学生CPP成绩计算
    php将远程图片下载保存到本地
    vs2010 调试快捷键
    vs2010 快捷键大全
    [C#] 使用Application.AddMessageFilter当做Form的热键
    C# 收发和处理自定义的WINDOWS消息
  • 原文地址:https://www.cnblogs.com/NaiHe0630/p/8818909.html
Copyright © 2011-2022 走看看