Struct trong C#

  Nguyễn Dương       15 tháng 4, 2020
lượt xem

Struct

1. Struct là gì?

Struct là một kiểu dữ liệu có cấu trúc, do lập trình viên tự định nghĩa, tự xây dựng từ các kiểu dữ liệu cơ bản. 
Ví dụ cần lưu thông tin của 1 sinh viên thì phải có các trường sau:
- Họ tên
- Mã sinh viên
- Lớp
- Số CMND/CCCD
- Địa chỉ thường trú

Nếu làm theo cách thông thường thì phải tạo đến 5 biến, nếu phải lưu trữ thông tin của 100, 1000 sinh viên thì phải code rất rườm rà, dài dòng. Vì vậy Struct sẽ giúp chúng ta gom hết 5 trường thông tin trên vào làm 1. 

2. Đặc điểm của Struct

- Là một kiểu dữ liệu tham trị
- Dùng để đóng gói các trường dữ liệu có liên quan đến nhau
- Trong struct có các biến có kiểu dữ liệu cơ bản, có các phương thức và có các struct khác
Struct không được phép kế thừa

3. Khai báo và sử dụng Struct

Cú pháp:
struct <tên struct>
{
     public <danh sách các biến>;
}

Ví dụ
struct SinhVien
{
     public string HoTen;
     public int MaSinhVien;
     public string Lop;
     public int CMND;
     public string DiaChi;
}

Với struct, ta có thể khai báo 1 kiểu dữ liệu mới là SinhVien và dùng nó với biến như những kiểu dữ liệu khác.
Muốn sử dụng struct thì phải khởi tạo, cấp phát vùng nhớ cho đối tượng thông qua toán tử new.

Ví dụ: Viết chương trình nhập và xuất thông tin sinh viên ra màn hình với struct
class Program
{
        struct SinhVien
        {
            public string HoTen;
            public int MaSinhVien;
            public string Lop;
            public int CMND;
            public string DiaChi;
        }

        static void NhapThongTinSinhVien(out SinhVien SV)
        {
            Console.Write("Ho ten: ");
            SV.HoTen = Console.ReadLine();
            Console.Write("Ma sinh vien: ");
            SV.MaSinhVien = int.Parse(Console.ReadLine());
            Console.Write("Lop: ");
            SV.Lop = Console.ReadLine();
            Console.Write("So CMND/CCCD: ");
            SV.CMND = int.Parse(Console.ReadLine());
            Console.Write("Dia chi thuong tru: ");
            SV.DiaChi = Console.ReadLine();
        }

        static void XuatThongTinSinhVien(SinhVien SV)
        {
            Console.WriteLine("Ho ten: " + SV.HoTen);
            Console.WriteLine("Ma sinh vien: " + SV.MaSinhVien);
            Console.WriteLine("Lop: " + SV.Lop);
            Console.WriteLine("So CMND/CCCD: " + SV.CMND);
            Console.WriteLine("Dia chi thuong tru: " + SV.DiaChi);
        }

        static void Main(string[] args)
        {
            SinhVien SV1 = new SinhVien();

            Console.WriteLine("Nhap thong tin sinh vien:");
            NhapThongTinSinhVien(out SV1);
            Console.WriteLine();
            Console.WriteLine("Thong tin sinh vien vua nhap la: ");
            XuatThongTinSinhVien(SV1);

            Console.ReadLine();
        }
}

Kết quả:

Lưu ý:
- Vì struct là kiểu tham trị nên khi truyền parameter vào thì giá trị của nó sau khi kết thúc phương thức sẽ không thay đổi. Do đó cần sử dụng từ khoá out để có thể cập nhật giá trị sau khi kết thúc phương thức.
logoblog

Bài viết liên quan

Nhận xét bài viết

Có một câu nói mà mình rất thích đó là: "Những gì chúng ta biết trong ngày hôm nay, ngày hôm sau sẽ lỗi thời. Nếu ngừng học tập thì chúng ta sẽ ngừng phát triển".
Con người ta muốn biết, muốn hiểu, muốn thành công thì phải học, học thật nhiều, học suốt đời.

Nếu như bạn chưa hiểu nội dung bài viết hoặc đang khúc mắc khi thao tác thì hãy bình luận phía dưới bài viết để mọi người cùng thảo luận nhé!

Lưu ý không spam link dưới mọi hình thức

Bạn có thể bình luận bằng 3 chế độ:
- Tài khoản Gmail
- Ẩn danh
- Tên tự tạo