类和结构体实际上都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。
类是引用类型,总是存储在堆(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}"); } }
注意:
类和结构体的一个重要区别四,类类型的对象通过引用传递,结构体类型的对象按值传递。