Memahami Struktur C#: Cara Mendefinisikan dan Menggunakan Tipe Nilai
Dalam C#, sebuah struktur adalah tipe data tipe nilai. Ini membantu Anda membuat satu variabel menampung data terkait dari berbagai tipe data. Kata kunci struct digunakan untuk membuat struktur.
Struktur digunakan untuk merepresentasikan catatan. Misalnya Anda ingin melacak buku-buku Anda di perpustakaan. Anda mungkin ingin melacak atribut berikut tentang setiap buku:
- Judul
- Penulis
- Subjek
- ID Buku
Mendefinisikan Struktur
Untuk mendefinisikan struktur, Anda harus menggunakan pernyataan struct. Pernyataan struct mendefinisikan tipe data baru, dengan lebih dari satu anggota untuk program Anda.
Contohnya, berikut adalah cara Anda dapat mendeklarasikan struktur Books:
struct Books { public string title; public string author; public string subject; public int book_id; }; Program berikut menunjukkan penggunaan struktur:
Live Demo
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; /* Declare Book1 of type Book */ Books Book2; /* Declare Book2 of type Book */ /* book 1 specification */ Book1.title = "C Programming"; Book1.author = "Nuha Ali"; Book1.subject = "C Programming Tutorial"; Book1.book_id = 6495407; /* book 2 specification */ Book2.title = "Telecom Billing"; Book2.author = "Zara Ali"; Book2.subject = "Telecom Billing Tutorial"; Book2.book_id = 6495700; /* print Book1 info */ Console.WriteLine( "Book 1 title : {0}", Book1.title); Console.WriteLine("Book 1 author : {0}", Book1.author); Console.WriteLine("Book 1 subject : {0}", Book1.subject); Console.WriteLine("Book 1 book_id :{0}", Book1.book_id); /* print Book2 info */ Console.WriteLine("Book 2 title : {0}", Book2.title); Console.WriteLine("Book 2 author : {0}", Book2.author); Console.WriteLine("Book 2 subject : {0}", Book2.subject); Console.WriteLine("Book 2 book_id : {0}", Book2.book_id); Console.ReadKey(); } } Ketika kode di atas dikompilasi dan dieksekusi, hasilnya adalah:
Book 1 title : C Programming Book 1 author : Nuha Ali Book 1 subject : C Programming Tutorial Book 1 book_id : 6495407 Book 2 title : Telecom Billing Book 2 author : Zara Ali Book 2 subject : Telecom Billing Tutorial Book 2 book_id : 6495700
Fitur Struktur C#
Anda telah menggunakan struktur sederhana bernama Books. Struktur dalam C# cukup berbeda dari struktur dalam C atau C++ tradisional. Struktur C# memiliki fitur berikut:
Struktur dapat memiliki metode, bidang, indeks, properti, metode operator, dan acara.
Struktur dapat memiliki konstruktor yang didefinisikan, tetapi tidak memiliki destruktor. Namun, Anda tidak dapat mendefinisikan konstruktor default untuk struktur. Konstruktor default secara otomatis didefinisikan dan tidak dapat diubah.
Tidak seperti kelas, struktur tidak dapat mewarisi struktur atau kelas lain.
Struktur tidak dapat digunakan sebagai dasar untuk struktur atau kelas lain.
Sebuah struktur dapat mengimplementasikan satu atau lebih antarmuka.
Anggota struktur tidak dapat ditentukan sebagai abstract, virtual, atau protected.
Saat Anda membuat objek struct menggunakan operator New, objeknya dibuat dan konstruktor yang sesuai dipanggil. Tidak seperti kelas, struct dapat diinstantiasi tanpa menggunakan operator New.
Jika operator New tidak digunakan, bidang tetap belum ditugaskan dan objek tidak dapat digunakan sampai semua bidang diinisialisasi.
Kelas versus Struktur
Kelas dan Struktur memiliki perbedaan dasar berikut:
- kelas adalah tipe referensi dan struct adalah tipe nilai
- struktur tidak mendukung pewarisan
- struktur tidak dapat memiliki konstruktor default
Dalam rangkaian diskusi di atas, mari kita tulis ulang contoh sebelumnya:
Live Demo
using System; struct Books { private string title; private string author; private string subject; private int book_id; public void getValues(string t, string a, string s, int id) { title = t; author = a; subject = s; book_id = id; } public void display() { Console.WriteLine("Title : {0}", title); Console.WriteLine("Author : {0}", author); Console.WriteLine("Subject : {0}", subject); Console.WriteLine("Book_id :{0}", book_id); } }; public class testStructure { public static void Main(string[] args) { Books Book1 = new Books(); /* Declare Book1 of type Book */ Books Book2 = new Books(); /* Declare Book2 of type Book */ /* book 1 specification */ Book1.getValues("C Programming", "Nuha Ali", "C Programming Tutorial",6495407); /* book 2 specification */ Book2.getValues("Telecom Billing", "Zara Ali", "Telecom Billing Tutorial", 6495700); /* print Book1 info */ Book1.display(); /* print Book2 info */ Book2.display(); Console.ReadKey(); } } Ketika kode di atas dikompilasi dan dieksekusi, hasilnya adalah:
Title : C Programming Author : Nuha Ali Subject : C Programming Tutorial Book_id : 6495407 Title : Telecom Billing Author : Zara Ali Subject : Telecom Billing Tutorial Book_id : 6495700