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();
原文地址:https://www.cnblogs.com/dyf96966/p/5774536.html