《刻意練習之C#》-0017- C#中類和結構體的區別
阿新 • • 發佈:2020-06-13
類和結構體實際上都是建立物件的模板,每個物件都包含資料,並提供了處理和訪問資料的方法。
類是引用型別,總是儲存在堆(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}"); } }
注意:
類和結構體的一個重要區別四,類型別的物件通過引用傳遞,結構體型別的物件按值傳遞。