Panduan Awal Struktur dalam C

Hai sana, para pengembang C# masa depan! Hari ini, kita akan melihat dunia yang menarik tentang struktur dalam C#. Jangan khawatir jika Anda baru dalam pemrograman - saya akan menjadi panduan ramah Anda dalam perjalanan ini, menjelaskan segala sesuatu secara langkah demi langkah. Oke, mari kita mulai!

C# - Structure

apa Itu Struktur?

Sebelum kita masuk ke hal-hal kecil, mari kita pahami apa itu struktur. Dalam C#, struktur (sering disingkat menjadi "struct") adalah jenis nilai yang dapat mengandung berbagai anggota data dan metode. Pahami ini seperti sebuah wadah yang dapat menyimpan berbagai jenis informasi bersama.

Imaginasi Anda sedang mengatur tas punggung untuk perjalanan hiking. Anda mungkin memiliki berbagai kompartemen untuk botol air, makanan ringan, peta, dan kompas. Demikian pula, struktur dalam C# memungkinkan Anda untuk mengelompokkan data yang berkaitan dalam satu unit.

Menentukan Struktur

Sekarang, mari kita lihat bagaimana kita dapat membuat struktur dalam C#. Sintaks dasar terlihat seperti ini:

struct NamaStruktur
{
// Anggota data dan metode disini
}

mari kita buat struktur sederhana untuk mewakili titik dalam ruang 2D:

struct Point
{
public int X;
public int Y;
}

Dalam contoh ini, kita telah menentukan struktur Point dengan dua anggota integer, X dan Y. Mereka mewakili koordinat titik di bidang 2D.

Menggunakan Struktur Kami

Sekarang kita telah menentukan struktur Point, mari kita lihat bagaimana kita dapat menggunakannya:

Point myPoint;
myPoint.X = 10;
myPoint.Y = 20;

Console.WriteLine($"Titik berada di ({myPoint.X}, {myPoint.Y})");

Kode ini membuat Point baru, mengatur nilai X dan Y nya, dan kemudian mencetak mereka. Ketika Anda menjalankan ini, Anda akan melihat:

Titik berada di (10, 20)

Apakah itu menarik? Kita baru saja membuat jenis custom kita sendiri dan menggunakannya dalam program kita!

Fitur Struktur C

Sekarang kita mulai merasakan hal-hal dasar, mari kita jelajahi beberapa fitur kunci struktur dalam C#.

1. Jenis Nilai

Struktur adalah jenis nilai, yang berarti mereka disimpan langsung di stack. Hal ini membuat mereka efisien untuk struktur data kecil. Ketika Anda menugaskan struktur ke variabel baru atau mengirimkannya ke metode, salinan keseluruhan struktur dibuat.

2. Tidak Dapat Menurunkan

Tak seperti kelas, struktur tidak dapat diturunkan dari struktur atau kelas lain (kecuali System.ValueType, yang semua struktur secara implisit menurunkan).

3. Dapat Implementasi Antarmuka

Meskipun struktur tidak dapat diturunkan, mereka dapat implementasi antarmuka. Hal ini memberikan fleksibilitas dalam desain.

4. Dapat Memiliki Konstruktor

Struktur dapat memiliki konstruktor, tetapi mereka harus menginisialisasi semua field struktur.

Marilah kita modifikasi Point struktur kita untuk termasuk konstruktor:

struct Point
{
public int X;
public int Y;

public Point(int x, int y)
{
X = x;
Y = y;
}
}

Sekarang kita dapat membuat Point seperti ini:

Point myPoint = new Point(10, 20);
Console.WriteLine($"Titik berada di ({myPoint.X}, {myPoint.Y})");

5. Dapat Memiliki Metode

Struktur juga dapat berisi metode. Marilah kita tambahkan metode untuk menghitung jarak dari titik kita ke asal (0,0):

struct Point
{
public int X;
public int Y;

public Point(int x, int y)
{
X = x;
Y = y;
}

public double DistanceToOrigin()
{
return Math.Sqrt(X*X + Y*Y);
}
}

Sekarang kita dapat menggunakan metode ini:

Point myPoint = new Point(3, 4);
Console.WriteLine($"Jarak ke asal: {myPoint.DistanceToOrigin()}");

Ini akan mengeluarkan:

Jarak ke asal: 5

(Ingat teorema Pythagoras? Itu sedang berguna disini!)

Kelas versus Struktur

Sekarang kita mengerti struktur, Anda mungkin bertanya-tanya: "Kapan saya harus menggunakan struktur bukannya kelas?" Pregunta bagus! Mari kitauraikan:

Gunakan Struktur Ketika:

  1. Anda memiliki sejumlah kecil data (biasanya kurang dari 16 byte).
  2. Data secara logis adalah nilai tunggal (seperti titik dalam ruang 2D).
  3. Data adalah immutable (tidak berubah setelah dibuat).
  4. Objek tidak perlu disembunyikan.

Gunakan Kelas Ketika:

  1. Anda memiliki sejumlah besar data.
  2. Lifetime objek perlu dikendalikan (misalnya, dengan destructor).
  3. Objek perlu diturunkan dari jenis lain.
  4. Anda memerlukan semantik jenis referensi.

Berikut adalah tabel perbandingan cepat:

Fitur Struktur Kelas
Jenis Jenis nilai Jenis referensi
Penyimpanan Stack Heap
Turunan Tidak dapat diturunkan Dapat diturunkan
Konstruktor default Disediakan oleh kompiler Tidak disediakan oleh kompiler
Dapat abstrak Tidak Ya
Dapat implementasi antarmuka Ya Ya
Dapat memiliki destructor Tidak Ya

Menutup

Dan itu adalah! Kita telah melakukan perjalanan melalui negeri struktur C#, dari definisi dasar hingga perbandingan dengan kelas. Struktur adalah alat kuat dalam kotak alat C# Anda, sempurna untuk mewakili jenis data sederhana secara efisien.

Ingat, seperti memilih alat yang tepat untuk pekerjaan, memilih antara struktur dan kelas tergantung pada kebutuhan khusus Anda. Sebagai Anda terus menjalankan perjalanan C# Anda, Anda akan mengembangkan rasa untuk kapan menggunakan yang mana.

Tetap latih, tetap menulis kode, dan terutama, tetap bersenang-senang! Siapa tahu, pada saat yang lain Anda merencanakan sebuah hiking, Anda mungkin menemukan diri Anda berpikir tentang tas punggung Anda dalam hal struktur C#. Selamat menulis kode, pengembang masa depan!

Credits: Image by storyset