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.
Pelajari cara mendefinisikan tipe data bernilai sendiri dengan struct dan memahami semantik salinan nilainya.
Buka → # Readonly StructPelajari cara membuat struct yang tidak dapat diubah setelah dibuat menggunakan modifier readonly.
Buka → # Ref StructKenali ref struct: struct khusus yang hanya boleh tinggal di stack, dengan ReadOnlySpan sebagai contoh utamanya.
Buka → # Record ClassPelajari record class: tipe referensi yang kesetaraannya membandingkan isi, lengkap dengan anggota yang dibangkitkan compiler.
Buka → # Record StructPelajari record struct: gabungan semantik nilai struct dan anggota kesetaraan record dalam satu deklarasi.
Buka → # Record EqualityPahami cara compiler menentukan dua record dianggap sama: perbandingan seluruh isi, kode hash, hingga pemeriksaan tipe runtime.
Buka → # With ExpressionPelajari with expression: membuat salinan dengan sebagian nilai diganti, tanpa mengubah data asalnya.
Buka → # EnumPelajari enum: memberi nama pada sekumpulan konstanta bernomor agar program lebih mudah dibaca dan dijaga.
Buka → # Enum Underlying TypePelajari tipe dasar di balik enum: memilih byte atau short, memberi nilai eksplisit, dan berpindah antara angka dan nama.
Buka → # Flags EnumPelajari flags enum: menggabungkan beberapa pilihan dalam satu nilai dengan atribut Flags dan operator bitwise.
Buka → # Tuple TypesPelajari tuple type di C#: struktur data ringan dengan elemen bernama, deconstruction, dan pertukaran nilai tanpa tipe baru.
Buka → # Anonymous TypesPelajari anonymous types: tipe sekali pakai yang dibuat compiler dari daftar property, beserta aturan kesetaraannya.
Buka → # Value ObjectPelajari pola desain value object dari domain-driven design pada tingkat pengantar, dibangun dengan record di C#.
Buka → # Memilih Class, Struct, RecordRangkuman panduan memilih antara class, struct, record class, dan record struct beserta alasan teknisnya.
Buka →