Bab sebelumnya menunjukkan kerangka lengkap namespace-class-Main. Menulis kerangka itu berulang kali untuk setiap latihan terasa panjang, dan justru mengalihkan perhatian dari logika yang sedang dipelajari. Sejak C# 9, compiler mengizinkan kita melewati kerangka tersebut dengan top-level statements: statement ditulis langsung di file, tanpa pembungkus apa pun.
Program Paling Ringkas #
Console.WriteLine("Halo dari top-level statement!");Output yang Dihasilkan:
Halo dari top-level statement!Satu baris itu sudah merupakan program C# yang utuh dan dapat dijalankan. Tidak ada using, namespace, class, atau Main yang perlu ditulis.
Apa yang Dilakukan Compiler di Balik Layar #
Top-level statements bukan berarti program tanpa class. Compiler secara internal menghasilkan class Program beserta method Main, lalu menempatkan seluruh statement kita sebagai isi Main tersebut. Runtime .NET tetap mencari dan menjalankan Main seperti biasa, sehingga perilaku program identik dengan bentuk klasik.
Dengan pemahaman itu, kita bebas menulis beberapa statement berurutan:
string sapaan = "Halo";
string nama = "Siti";
Console.WriteLine(sapaan + ", " + nama + "!");
Console.WriteLine("Program selesai.");Output yang Dihasilkan:
Halo, Siti!
Program selesai.Mari kita telaah baris demi baris:
- Baris 1 (
string sapaan = "Halo";): Compiler membuat variabel lokalsapaandi dalam methodMainyang dihasilkannya secara internal. - Baris 2 (
string nama = "Siti";): Variabelnamadibuat di lokasi yang sama, sejajar dengan variabel sebelumnya. - Baris 4 (
Console.WriteLine(...)): Operator+menyambung ketiga bagian teks menjadi satu string sebelum method menampilkannya. - Baris 5 (
Console.WriteLine("Program selesai.");): Statement kedua dieksekusi setelah statement pertama selesai, sesuai urutan penulisan.
Batasan yang Ditetapkan Compiler #
Top-level statements punya aturan main yang tegas:
- Statement hanya boleh ditulis sebelum deklarasi tipe seperti
classatauenumdi file yang sama. - Top-level statements tidak dapat dicampur dengan method
Mainklasik dalam satu project; compiler menolaknya sebagai error. - Hanya satu file dalam project yang boleh memuat top-level statements.
Karena template modern .NET secara bawaan memakai bentuk ini, seluruh latihan pada section ini pun ditulis sebagai top-level statements agar fokus tetap pada materi yang sedang dibahas.