0Pricing
C# Academy · Pelajaran

Konstruktor Utama dengan Struct

Terapkan konstruktor utama pada tipe nilai.

Konstruktor Utama dengan Struct adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.

Konstruktor Utama pada Struktur

Struktur juga mendukung konstruktor utama: struct Point(int x, int y). Cara kerjanya mirip dengan konstruktor utama pada kelas, yaitu mendeklarasikan parameter pada bagian deklarasi.

using System;

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

var p = new Point(3, 4);
Console.WriteLine(p.X + "," + p.Y); // 3,4

Konstruktor Tanpa Parameter Tetap Ada

Struktur selalu memiliki konstruktor implisit tanpa parameter yang menghasilkan nilai bawaan. Konstruktor utama menambahkan konstruktor berparameter di sampingnya.

using System;

struct Vec(int x, int y) {
    public int X => x;
    public int Y => y;
}

var zero = new Vec(); // default: x=0, y=0
Console.WriteLine(zero.X + "," + zero.Y); // 0,0

Menampilkan Parameter melalui Properti

Seperti pada kelas, parameter konstruktor utama struktur tidak otomatis menjadi properti publik; tampilkan parameter tersebut secara eksplisit.

using System;

struct Size(int w, int h) {
    public int Width { get; } = w;
    public int Height { get; } = h;
}

var s = new Size(10, 20);
Console.WriteLine(s.Width * s.Height); // 200

Anggota Terhitung

Konstruktor utama struktur sangat cocok dipadukan dengan anggota terhitung berbentuk ekspresi.

using System;

struct Complex(double re, double im) {
    public double Magnitude => Math.Sqrt(re * re + im * im);
}

Console.WriteLine(new Complex(3, 4).Magnitude); // 5

Struktur readonly

readonly struct dengan konstruktor utama menjamin ketidakdapatubahan. Semua anggota tidak boleh mengubah keadaan, sehingga sangat cocok untuk properti yang hanya dapat dibaca.

using System;

readonly struct Money(decimal amount, string currency) {
    public decimal Amount { get; } = amount;
    public string Currency { get; } = currency;
    public string Display => Amount.ToString("0.00") + " " + Currency;
}

Console.WriteLine(new Money(5m, "USD").Display); // 5.00 USD

Merangkai ke Konstruktor Utama

Konstruktor struktur tambahan harus memanggil konstruktor utama dengan : this(...), sama seperti pada kelas.

using System;

struct Square(int side) {
    public int Side => side;
    public int Area => side * side;
    public Square() : this(1) { } // explicit default side
}

Console.WriteLine(new Square(4).Area); // 16

Konstruktor Bawaan vs Konstruktor Utama

Perhatikan bahwa new Square() dapat menggunakan inisialisasi nol implisit atau konstruktor tanpa parameter yang Anda deklarasikan. Jika Anda mendefinisikan konstruktor yang dirangkai, logika Anda akan dijalankan.

using System;

struct Pct(double value) {
    public double Value { get; } = value;
    public Pct() : this(100) { }
}

Console.WriteLine(new Pct().Value); // 100

Semantik Nilai Tetap Berlaku

Struktur tetap disalin berdasarkan nilai. Konstruktor utama tidak mengubah hal itu: menetapkan sebuah struktur akan menyalin semua bidangnya.

using System;

struct Counter(int n) {
    public int N { get; set; } = n;
}

var a = new Counter(1);
var b = a;       // copy
b.N = 99;
Console.WriteLine(a.N + " " + b.N); // 1 99

Menginisialisasi Bidang yang Dapat Diubah

Anda dapat menginisialisasi properti atau bidang yang dapat diatur dari parameter, meskipun struktur yang tidak dapat diubah biasanya lebih disarankan.

using System;

struct Bag(int capacity) {
    public int Capacity { get; set; } = capacity;
    public int Used { get; set; } = 0;
}

var bag = new Bag(10);
bag.Used = 3;
Console.WriteLine(bag.Capacity - bag.Used); // 7

Dekonstruksi

Padukan konstruktor utama dengan metode Deconstruct untuk memperoleh pembongkaran yang mirip tupel.

using System;

struct Point(int x, int y) {
    public int X => x;
    public int Y => y;
    public void Deconstruct(out int a, out int b) { a = x; b = y; }
}

var (px, py) = new Point(7, 8);
Console.WriteLine(px + "," + py); // 7,8

Menerapkan Semuanya

Tipe nilai kecil yang tidak dapat diubah, dibangun menggunakan struktur readonly dan konstruktor utama.

using System;

readonly struct Temperature(double celsius) {
    public double Celsius { get; } = celsius;
    public double Fahrenheit => Celsius * 9 / 5 + 32;
}

var t = new Temperature(25);
Console.WriteLine(t.Fahrenheit); // 77

Pemeriksaan Singkat

Uji pemahaman Anda tentang konstruktor utama pada struktur.

Ringkasan

Anda telah mempelajari konstruktor utama pada struktur.

  • struct P(int x, int y) mendeklarasikan parameter pada bagian deklarasi.
  • Konstruktor implisit tanpa parameter tetap ada.
  • Padukan dengan readonly struct untuk membuat tipe nilai yang tidak dapat diubah.
  • Konstruktor tambahan dirangkai dengan : this(...).

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Konstruktor Utama dengan Struct” gratis?

Ya — teks lengkap “Konstruktor Utama dengan Struct” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Konstruktor Utama dengan Struct”?

Terapkan konstruktor utama pada tipe nilai. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Konstruktor Utama dengan Struct” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Konstruktor Utama pada Kelas
  2. Menangkap Parameter dalam Anggota
  3. Konstruktor Utama dengan Struct
  4. Menggabungkan dengan Properti dan Tipe Dasar
← Kembali ke C# Academy