C#中类和结构体的区别 -0017

类和结构体实际上都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。

类是引用类型,总是存储在堆(heap)上;

结构体是值类型,通常存储在栈(stack)上,结构体不支持继承。

较小的数据类型使用结构体可以提高性能;在栈上存储值类型可以避免垃圾收集。

对于类和结构体,都使用关键字new来声明实例:创建对象并对其进行初始化。

类示例:

    class Customer
    {
        public int CustomerId { get; set; }
        public string Name { get; set; }
    }

  

结构体示例:

    struct CustomerStruct
    {
        public int CustomerId { get; set; }
        public string Name { get; set; }
    }

  

声明实例和使用:

    class Program
    {
        static void Main(string[] args)
        {
            var testClass = new Customer()
            {
                CustomerId = 100,
                Name = "Name 100"
            };

            var testStruct = new CustomerStruct()
            {
                CustomerId = 200,
                Name = "Name 200"
            };

            Console.WriteLine($"Class: {testClass.CustomerId} - {testClass.Name} ");
            Console.WriteLine($"Struct: {testStruct.CustomerId} - {testStruct.Name}");
        }
    }

注意:

类和结构体的一个重要区别四,类类型的对象通过引用传递,结构体类型的对象按值传递。

  

原文地址:https://www.cnblogs.com/codesee/p/13111506.html