Class bukan satu-satunya cara mendefinisikan tipe di C#. Struct menawarkan semantik nilai yang ringan, record menghasilkan tipe data yang mudah dibandingkan, dan enum memberi nama pada sekumpulan konstanta. Section ini membantu memahami setiap pilihan beserta kapan masing-masing paling tepat dipakai.

# Struct

Pelajari cara mendefinisikan tipe data bernilai sendiri dengan struct dan memahami semantik salinan nilainya.

Buka →
# Readonly Struct

Pelajari cara membuat struct yang tidak dapat diubah setelah dibuat menggunakan modifier readonly.

Buka →
# Ref Struct

Kenali ref struct: struct khusus yang hanya boleh tinggal di stack, dengan ReadOnlySpan sebagai contoh utamanya.

Buka →
# Record Class

Pelajari record class: tipe referensi yang kesetaraannya membandingkan isi, lengkap dengan anggota yang dibangkitkan compiler.

Buka →
# Record Struct

Pelajari record struct: gabungan semantik nilai struct dan anggota kesetaraan record dalam satu deklarasi.

Buka →
# Record Equality

Pahami cara compiler menentukan dua record dianggap sama: perbandingan seluruh isi, kode hash, hingga pemeriksaan tipe runtime.

Buka →
# With Expression

Pelajari with expression: membuat salinan dengan sebagian nilai diganti, tanpa mengubah data asalnya.

Buka →
# Enum

Pelajari enum: memberi nama pada sekumpulan konstanta bernomor agar program lebih mudah dibaca dan dijaga.

Buka →
# Enum Underlying Type

Pelajari tipe dasar di balik enum: memilih byte atau short, memberi nilai eksplisit, dan berpindah antara angka dan nama.

Buka →
# Flags Enum

Pelajari flags enum: menggabungkan beberapa pilihan dalam satu nilai dengan atribut Flags dan operator bitwise.

Buka →
# Tuple Types

Pelajari tuple type di C#: struktur data ringan dengan elemen bernama, deconstruction, dan pertukaran nilai tanpa tipe baru.

Buka →
# Anonymous Types

Pelajari anonymous types: tipe sekali pakai yang dibuat compiler dari daftar property, beserta aturan kesetaraannya.

Buka →
# Value Object

Pelajari pola desain value object dari domain-driven design pada tingkat pengantar, dibangun dengan record di C#.

Buka →
# Memilih Class, Struct, Record

Rangkuman panduan memilih antara class, struct, record class, dan record struct beserta alasan teknisnya.

Buka →