C# - Struktur
Dalam C#, struktur adalah tipe data tipe nilai. Ini membantu Anda membuat satu variabel menyimpan data terkait dari berbagai tipe data. struktur kata kunci digunakan untuk membuat struktur.
Struktur digunakan untuk merepresentasikan record. Misalkan 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.
Misalnya, inilah cara Anda mendeklarasikan struktur Buku −
struct Books {
public string title;
public string author;
public string subject;
public int book_id;
};
Program berikut menunjukkan penggunaan struktur −
Demo Langsung
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, menghasilkan hasil sebagai berikut
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 Buku. Struktur dalam C# sangat berbeda dengan struktur dalam C atau C++ tradisional. Struktur C# memiliki fitur berikut
-
Struktur dapat memiliki metode, bidang, pengindeks, properti, metode operator, dan peristiwa.
-
Struktur dapat memiliki konstruktor yang ditentukan, tetapi bukan destruktor. Namun, Anda tidak dapat menentukan konstruktor default untuk suatu struktur. Konstruktor default ditentukan secara otomatis 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 abstrak, virtual, atau dilindungi.
-
Saat Anda membuat objek struct menggunakan Baru operator, itu akan dibuat dan konstruktor yang sesuai dipanggil. Tidak seperti kelas, struct dapat dipakai tanpa menggunakan operator New.
-
Jika operator Baru tidak digunakan, bidang tetap tidak ditetapkan dan objek tidak dapat digunakan sampai semua bidang diinisialisasi.
Kelas versus Struktur
Kelas dan Struktur memiliki perbedaan mendasar berikut
- kelas adalah tipe referensi dan struct adalah tipe nilai
- struktur tidak mendukung pewarisan
- struktur tidak boleh memiliki konstruktor default
Berdasarkan diskusi di atas, mari kita tulis ulang contoh sebelumnya
Demo Langsung
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, menghasilkan hasil sebagai berikut
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