Lồng struct trong C#



Bài tập C#: Lồng struct

Viết chương trình C# để tạo một struct được lồng trong struct khác. Ví dụ: một struct lưu giữ thông tin của nhân viên gồm tên và ngày, tháng, năm sinh của nhân viên, trong đó ngày, tháng, năm sinh của nhân viên được tạo bởi một struct khác.

Đây là bài tập C# đơn giản minh họa giúp bạn cách khai báo một struct và cách truy cập các phần tử của một struct.

Chương trình C#

Dưới đây là chương trình C# minh họa lời giải cho bài tập lồng struct trong C#:

using System;namespace VietJackCsharp
{
    class TestCsharp
    {
        //khai bao mot struct bao gom tenNhanVien va ngaySinh  
        //trong do, ngaySinh la mot struct
        struct nhanVien
        {
            public string eName;
            public ngaySinh Date;
        }
        //khai bao cau truc ngaySinh 
        struct ngaySinh
        {
            public int Day;
            public int Month;
            public int Year;
        }
        static void Main(string[] args)
        {            int dd = 0, mm = 0, yy = 0;
            int total = 2;
            Console.Write("\nLong struct trong C#:\n");
            Console.Write("--------------------------\n");
            nhanVien[] emp = new nhanVien[total];            for (int i = 0; i < total; i++)
            {
                Console.Write("Ten nhan vien: ");
                string nm = Console.ReadLine();
                emp[i].eName = nm;                Console.Write("Nhap ngay sinh: ");
                dd = Convert.ToInt32(Console.ReadLine());
                emp[i].Date.Day = dd;                Console.Write("Nhap thang sinh: ");
                mm = Convert.ToInt32(Console.ReadLine());
                emp[i].Date.Month = mm;                Console.Write("Nhap nam sinh: ");
                yy = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine();
                emp[i].Date.Year = yy;
            }
            Console.ReadKey();
        }
    }
}

Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Kết quả chương trình C#

Biên dịch và chạy chương trình C# trên sẽ cho kết quả:

Lồng struct trong C#
bai-tap-struct-trong-csharp.jsp