zoukankan      html  css  js  c++  java
  • 01、类与结构的区别

    由于类是引用类型,因此类对象的变量引用该对象在托管堆上的地址。

    由于结构是值类型,因此结构对象的变量具有整个对象的副本。

    如果不能理解的同学,看看这运行结果就明白了!

    细心的同学应该会发现:

    ## 红色框(类)第二个对象覆盖了第一个对象(两个类型比较:True)。由于类是引用类型,因此将同一类型的第二个对象分配给第一个对象,则两个变量都引用该地址的对象。也就是 类 所谓的引用类型

    ## 蓝色框(结构)第二个对象未覆盖第一个对象(两个类型比较:False)。由于结构是值类型,因此结构对象的变量具有整个对象的副本。

    实践代码如下:

    class Program
        {
            static void Main(string[] args)
            {
                PersonA personA = new PersonA("lsy", 25);
    
                PersonA personA1 = personA;
                personA1.Name = "lishuyiba";
                personA1.Age = 26;
    
                Console.WriteLine(personA.Name);
                Console.WriteLine(personA.Age);
    
                Console.WriteLine(personA1.Name);
                Console.WriteLine(personA1.Age);
    
    
    
                Console.WriteLine("#######################################");
    
                PersonB personB = new PersonB("lsy", 25);
    
                PersonB personB1 = personB;
                personB1.Name = "lishuyi";
                personB1.Age = 27;
    
                Console.WriteLine(personB.Name);
                Console.WriteLine(personB.Age);
    
                Console.WriteLine(personB1.Name);
                Console.WriteLine(personB1.Age);
    
                Console.ReadKey();
            }
        }
    
        class PersonA
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public PersonA(string name, int age)
            {
                Name = name;
                Age = age;
            }
        }
        struct PersonB
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public PersonB(string name, int age)
            {
                Name = name;
                Age = age;
            }
        }
    

      

  • 相关阅读:
    PyCharm小技巧
    How to install torcs package in Debian
    QT4.8.6静态编译
    Debian初识(选择最佳镜像发布站点加入source.list文件)
    Dev-C++ 小问题锦集
    ubuntu 12.04lts 安装mysql ,并通过QT连接
    win7下安装ubuntu14.04lts 双系统
    cmake打印变量值
    驾车常识:小轿车灯光
    汽车点火开关的功能介绍
  • 原文地址:https://www.cnblogs.com/lishuyi/p/7836709.html
Copyright © 2011-2022 走看看