Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Tạo cấu trúc (struct) trong C#


Trong C#, struct (cấu trúc) là kiểu dữ liệu giá trị (value type). Nó giúp một biến đơn lẻ giữ dữ liệu liên quan của nhiều kiểu dữ liệu khác nhau. Từ khóa struct dùng để tạo cấu trúc.

Cú pháp

struct Books
{
    public string title;
    public string author;
    public string subject;
    public int book_id;
};

Ví dụ hoàn chỉnh

using System;

struct Books
{
    public string title;
    public string author;
    public string subject;
    public int book_id;
}

public class TestStructure
{
    public static void Main(string[] args)
    {
        Books Book1; // Khai báo Book1 kiểu Book
        Books Book2; // Khai báo Book2 kiểu Book
        
        // Thông tin sách 1
        Book1.title = "C Programming";
        Book1.author = "Nuha Ali";
        Book1.subject = "C Programming Tutorial";
        Book1.book_id = 6495407;
        
        // Thông tin sách 2
        Book2.title = "Telecom Billing";
        Book2.author = "Zara Ali";
        Book2.subject = "Telecom Billing Tutorial";
        Book2.book_id = 6495700;
        
        // In thông tin
        Console.WriteLine("Sách 1 - Tiêu đề: {0}", Book1.title);
        Console.WriteLine("Sách 1 - Tác giả: {0}", Book1.author);
        Console.WriteLine("Sách 1 - Chủ đề: {0}", Book1.subject);
        Console.WriteLine("Sách 1 - ID: {0}", Book1.book_id);
        
        Console.WriteLine();
        
        Console.WriteLine("Sách 2 - Tiêu đề: {0}", Book2.title);
        Console.WriteLine("Sách 2 - Tác giả: {0}", Book2.author);
        Console.WriteLine("Sách 2 - Chủ đề: {0}", Book2.subject);
        Console.WriteLine("Sách 2 - ID: {0}", Book2.book_id);
        
        Console.ReadKey();
    }
}

Kết quả

Sách 1 - Tiêu đề: C Programming
Sách 1 - Tác giả: Nuha Ali
Sách 1 - Chủ đề: C Programming Tutorial
Sách 1 - ID: 6495407

Sách 2 - Tiêu đề: Telecom Billing
Sách 2 - Tác giả: Zara Ali
Sách 2 - Chủ đề: Telecom Billing Tutorial
Sách 2 - ID: 6495700

Struct vs Class

Đặc điểmstructclass
KiểuValue typeReference type
Lưu trữStack (thường)Heap
Kế thừaKhông (chỉ implement interface)Có
ConstructorKhông có parameterless constructorCó
NullKhông thể null (trừ nullable)Có thể null
Hiệu suấtNhanh cho object nhỏPhù hợp object lớn

Khi dùng struct: Kiểu dữ liệu nhỏ, bất biến (immutable), hành vi giá trị, không cần kế thừa (Point, Rectangle, DateTime, Guid...).