Struct và Class khác nhau như thế nào trong C#?


Diễn đàn chia sẻ kiến thức, kinh nghiệm về IT và cuộc sống!
 
Trang ChínhGalleryTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập
Top posters
Sakura (1124)
 
hotboy (705)
 
Già Làng (373)
 
con_ca_nho90 (289)
 
that_true (154)
 
theanhkkt (143)
 
phamay (137)
 
lovelonelyman (134)
 
o0ovioletstaro0o (128)
 
stevenhung (122)
 
Âm - Dương lịch
Clock
Logo
11TH02 Pro!
Liên kết
Tin tức 60s
Tin công nghệ
Thời sự 24h
Game Moblie

Share | 
 

 Struct và Class khác nhau như thế nào trong C#?

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Sakura


avatar

Thú CƯng :
Nam Scorpio

Số bài viết : 1124
Điểm : 1688
Được cảm ơn : 35
Ngày sinh : 03/11/1990
Tham gia ngày : 16/03/2010
Tuổi : 27
Đến từ : Bình Dương
Ngề nghiệp : IT Student

Bài gửiTiêu đề: Struct và Class khác nhau như thế nào trong C#?   8/10/2010, 09:40

Sau khi nghe thầy giảng về Class và Struct trong C#, nhiều bạn băn khoăn: "chúng có khác nhau gì đâu?"
Và thưa, đây là 1 số điểm khác nhau giữa class và struct, bài này là mình sưu tầm thôi nhé! Hjhj!

Struct và Class khác nhau như thế nào trong C#?

Lên đến C# thì thật sự Struct rất giống với Class, rất khó phân biệt điểm khác nhau giữa Struct và Class và khi nào thì dùng nên Class và khi nào nên dùng Struct.

Điểm giống nhau giữa Struct và Class :

- Đều che giống thông tin bên trong bằng những dữ liệu thành viên là các field.

- Đều chứa các phương thức (method) và các thuộc tính (Property).

- Đều có thể thực hiện các giao diện (implement interface)

- Đều có hàm khởi tạo

- …

Điểm khác nhau giữa Struct và Class :

- Hàm tạo của Struct bắt buộc phải có tham số

- Struct là kiểu dữ liệu tham trị được chứa trong vùng nhớ Stack còn Class là kiểu dữ liệu tham chiếu được chứa trong vùng nhớ Heap

- Struct không hổ trợ kế thừa từ một Class hay Struct khác

- Struct không hổ trợ hàm hủy

- …

Vì có nhiều điểm tương đồng như vậy cho nên Struct được xem là một “Class nhẹ ký” và có thể được dùng để thay thế Class trong một số trường hợp. Vì vậy các bạn nên xem xét khi dự định sẽ tạo ra một lớp các đối tượng mới, nếu trong trường hợp Struct có thể đáp ứng được thì các bạn nên dùng Struct hơn là Class vì các đối tượng tạo ra bởi Struct ít tốn bộ nhớ hơn so với Class do việc qui chiếu.

Ở OOP căn bản thì chưa có được sự phân biệt mấy giữa Struct và Class nhưng khi ta đi sâu vào OOP để thực thi những thư viện lớp mà có thể được kế thừa và mở rông ra sau này, thì lúc đó ta sẽ dùng Class nhiều hơn Struct và sẽ thấy được sự khác biệt rõ rệt vì Class được thiết kế là dành cho OOP.

Trong một số trường hợp ta cần tạo ra những kiểu đơn giản không đòi hỏi nhiều về tính kế thừa, trừu tượng hóa như : các điểm trên hệ thống tọa độ, phân số …thì ta cứ việc dùng kiểu Struct cho nhẹ chương trình :



Code:
struct DIEM
    {
        int _x;
        int _y;

        public DIEM(int x, int y)
        {
            _x = x;
            _y = y;
        }

        public int X
        {
            get { return _x; }
            set { _x = value; }
        }

        public int Y
        {
            get { return _y; }
            set { _y = value; }
        }
    }

    struct PHANSO
    {
        int _tuso;
        int _mauso;

        public PHANSO(int tuso, int mauso)
        {
            _tuso = tuso;
            _mauso = mauso;
        }

        public int Tuso
        {
            get { return _tuso; }
            set { _tuso = value; }
        }
        public int Mauso
        {
            get { return _mauso; }
            set { _mauso = value; }
        }
    }

_________________________________________________
Khách viếng thăm muốn liên hệ với mình thì xem thông tin phía dưới nha:
Email: [You must be registered and logged in to see this link.]
Nick Yahoo: Edward_Thien
Về Đầu Trang Go down
Xem lý lịch thành viên
that_true

Member Nhiệt Tình


Member Nhiệt Tình
avatar

Thú CƯng :
Nam Scorpio

Số bài viết : 154
Điểm : 187
Được cảm ơn : 0
Ngày sinh : 07/11/1988
Tham gia ngày : 17/09/2010
Tuổi : 29
Đến từ : venus
Ngề nghiệp : catch

Bài gửiTiêu đề: Re: Struct và Class khác nhau như thế nào trong C#?   8/10/2010, 16:54

nói chung trước đây ta dùng struct để làm project và bây giờ ta dùng class cũng để làm project =))!
Về Đầu Trang Go down
Xem lý lịch thành viên phamminhan_gl@yahoo.com
 

Struct và Class khác nhau như thế nào trong C#?

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

 Similar topics

-
» Thông Tin Chi Tiết Các Class Trong Game
» Phân Loại Class và Chi Tiết Về Stat Của Đồ [ Phải Đọc ]
» Hãy hiểu nhau hơn
» CÁC CÁCH XIN LỖI CHÀNG THẬT DỄ THƯƠNG KHIẾN ANH ẤY HẾT GIẬN
» Tập Thơ Mưa Nguồn 1962 - Bùi Giáng

Permissions in this forum:Bạn không có quyền trả lời bài viết
IT World! :: HỌC TẬP :: HỌC KỲ V :: Nhập môn .Net-