Computer >> Máy Tính >  >> Lập trình >> C#

Sự khác biệt giữa Lớp và Cấu trúc trong C #

Để phân biệt giữa Lớp và Cấu trúc, trước tiên chúng ta phải hiểu rằng cả cấu trúc và lớp dường như tương đương nhau trong bối cảnh nắm giữ và xác định dữ liệu. Cả hai điều này có thể xác định cũng như giữ một số giá trị mặc định trong các thành viên dữ liệu của chúng. Nhưng nếu chúng ta xem xét chúng ngoài bối cảnh này thì Lớp cung cấp tính linh hoạt hơn cùng với chức năng so với Cấu trúc.

Sau đây là những điểm khác biệt quan trọng giữa Lớp và Cấu trúc.

Sr. Không. Khóa Lớp Cấu trúc
1 Loại Dữ liệu Dữ liệu được xác định trong một lớp được lưu trữ trong bộ nhớ dưới dạng một tham chiếu và có địa chỉ cụ thể để được truy cập, vì vậy nó có thể được phát biểu là Lớp thuộc loại Tham chiếu. Mặt khác, trong trường hợp Cấu trúc, giá trị của thành viên dữ liệu được lưu trữ trực tiếp trong ngăn xếp hoặc các loại có chứa nội tuyến, vì vậy Cấu trúc được coi là kiểu Giá trị.
2 Dung lượng Như đã đề cập ở phần trên, các thành viên dữ liệu được lưu trữ dưới dạng tham chiếu trong trường hợp Loại và kiểu tham chiếu được cấp phát trên bộ nhớ heap. Mặt khác, giá trị trực tiếp trong Cấu trúc được lưu trữ để các kiểu giá trị được cấp phát trên bộ nhớ ngăn xếp.
3 Khối mã lệnh Các lớp có thể được xác định bằng phương thức khởi tạo cũng như hủy phương thức khởi tạo khi nó được triển khai chức năng của chúng. Mặt khác, Structure không thể có Constructor hoặc De-constructor vì không có triển khai như vậy được cung cấp trong đó.
4 Khởi tạo Như Lớp được giới thiệu với hàm tạo với sự trợ giúp của Lớp có thể khởi tạo phiên bản của nó bằng từ khóa mới. Mặt khác, Structure có thể tạo một phiên bản mà không có từ khóa mới.
5 Kế thừa Lớp có thể kế thừa các thuộc tính từ lớp cha vì nó hỗ trợ tính năng Kế thừa. Mặt khác, Cấu trúc không hỗ trợ Kế thừa.
6 Công cụ sửa đổi được bảo vệ Chúng ta có thể sử dụng công cụ sửa đổi được bảo vệ với các thành viên dữ liệu được xác định trong lớp vì Lớp hỗ trợ công cụ sửa đổi được bảo vệ. Mặt khác, Structure không hỗ trợ công cụ sửa đổi được bảo vệ.