using alias lama hanya menerima bentuk tipe tertunggal seperti class atau interface yang ditulis lengkap. C# 12 meluaskannya: alias kini dapat menunjuk tuple type, array, pointer, dan tipe unsafe sekalipun, sehingga signature yang panjang dapat diberi nama pendek. Bab ini menunjukkan penerapannya dan batas yang perlu diantisipasi.
Alias untuk Tipe Komposit #
using DaftarHarga = System.Collections.Generic.List<int>;
using Kamus = System.Collections.Generic.Dictionary<string, int>;
using Posisi = (int Baris, int Kolom);
using Papan = int[,,];
DaftarHarga harga = [12000, 18000, 25000];
int total = 0;
foreach (int h in harga)
{
total += h;
}
Console.WriteLine(total);
Posisi posisi = (2, 3);
Console.WriteLine($"{posisi.Baris}, {posisi.Kolom}");
Papan kubus = new int[2, 2, 2];
kubus[0, 1, 1] = 7;
Console.WriteLine(kubus[0, 1, 1]);
Kamus stok = new();
stok["Kopi"] = 10;
Console.WriteLine(stok["Kopi"]);Output yang Dihasilkan:
55000
2, 3
7
10Mari kita bedah baris demi baris:
using Posisi = (int Baris, int Kolom);: tuple type yang bernama kini sah sebagai alias; setiap deklarasiPosisimembaca seperti kontrak data kecil.using Papan = int[,,];: array multidimensi pun dapat diberi nama; penulisannew int[2, 2, 2]menghasilkan tipe yang sama denganPapan.DaftarHargadanKamus: alias koleksi generik tertutup menggantikan penulisan panjang berulang; collection expression[12000, ...]tetap mengenali targetnya.- Akses anggota:
posisi.Baris, indekskubus[0, 1, 1], danstok["Kopi"]bekerja normal, karena alias tidak membentuk tipe baru sama sekali.
Sifat dan Batas #
Alias hanyalah nama lain: Posisi dan (int Baris, int Kolom) adalah tipe yang persis sama, dapat saling dipakai tanpa konversi, dan tidak menambah metadata. Nama alias berlaku pada satu file tempat using ditulis, dan satu file tidak boleh memiliki dua alias dengan nama sama.
Manfaat terbesarnya terasa pada signature. Method yang mengembalikan (int Baris, int Kolom) berulang di beberapa tempat menjadi lebih terbaca dengan satu nama Posisi, dan maksud tipe seperti int[,,] langsung tersampaikan lewat Papan. Alias juga menjaga konsistensi: bila bentuk tuple berubah, cukup baris using yang disunting.