简单来说,struct是值类型,创建一个struct类型的实例被分配在栈上。class是引用类型,创建一个class类型实例被分配在托管堆上。但struct和class的区别远不止这么简单。本篇主要包括:

 

概括来讲
从赋值的角度体验struct和class的不同
从参数传值角度体验struct和class的不同
从struct类型的struct类型属性和struct引用类型属性体验struct和class的不同
从构造函数体验struct和class的不同
从给类型成员赋初值体验struct和class的不同
何时使用struct,何时使用class?

 

Program { static void Main(string[] args) { SizeClass sizeClass = new SizeClass(){Width = 10, Length = 10}; Console.WriteLine("赋值前:width={0},length={1}", sizeClass.Width, sizeClass.Length); var copyOfSizeClass = sizeClass; copyOfSizeClass.Length = 5; copyOfSizeClass.Width = 5; Console.WriteLine("赋值后:width={0},length={1}",sizeClass.Width, sizeClass.Length); Console.ReadKey(); } } public class SizeClass { public int Width { get; set; } public int Length { get; set; } } public struct SizeStruct { public int Width { get; set; } public int Length { get; set; } }

相关文章: