• C#类和结构的关系


      主要联系:类和结构都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。类定义了每个类对象(实例)可以包含什么数据和功能。例如,如果一个类表示一个顾客,就可以定义字段CustomerID、FirstName、LastName和Address,包含该顾客的信息。还可以定义处理存储在这些字段中的数据的功能。接着就可以实例化这个类的对象,以表示某个顾客,并为这个实例设置这些字段,使用其功能。

    class PhoneCustomer
        {
            public const string DayOfSendingBill = "Monday";
            public int CustomerID;
            public string FirstName;
            public string LastName;
        }

      主要区别:结构和类的区别是他们在内存中的存储方式(类是存储在堆(heap)上的引用类型,结构是存储在堆栈(stack)上的值类型)、访问方式和一些特征(如结构不支持继承)。较小的数据类型使用结构可提高性能。但在语法上,结构和类非常相似,主要的区别是使用关键字struct代替class来声明结构。例如,如果希望所有的PhoneCustmer实例都存储在堆栈上,而不是存储在托管堆上,就可以编写下面的语句:

    struct PhoneCustomerStruct
        {
            public const string DayOfSendingBill = "Monday";
            public int CustomerID;
            public string FirstName;
            public string LastName;
        }

      对于类和结构,都使用关键字New来声明实例:这个关键字创建对象并对其进行初始化。大多数情况下,类要比结构常用的多。

    PhoneCustomer myCustomer1 = new PhoneCustomer();
    PhoneCustomerStruct myCustomer2 = new PhoneCustomerStruct();
  • 相关阅读:
    洛谷 P1005 矩阵取数游戏 (区间dp+高精度)
    洛谷 P1026 统计单词个数 (分组+子串预处理)(分组型dp再次总结)
    洛谷 P1052 过河 (离散化+dp)
    洛谷 P1541 乌龟棋 (四维费用背包)
    洛谷 P1736 创意吃鱼法
    矩阵旋转模板
    洛谷 P1855 榨取kkksc03 (二维费用背包)
    洛谷 P1417 烹调方案 (01背包拓展)
    关于结构体的PPT
    子进程自父进程继承什么或未继承什么
  • 原文地址:https://www.cnblogs.com/dyf96966/p/5774536.html
Copyright © 2020-2023  润新知