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