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 #

csharp
Console.WriteLine("Halo dari top-level statement!");

Output yang Dihasilkan:

text
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:

csharp
string sapaan = "Halo";
string nama = "Siti";

Console.WriteLine(sapaan + ", " + nama + "!");
Console.WriteLine("Program selesai.");

Output yang Dihasilkan:

text
Halo, Siti!
Program selesai.

Mari kita telaah baris demi baris:

  1. Baris 1 (string sapaan = "Halo";): Compiler membuat variabel lokal sapaan di dalam method Main yang dihasilkannya secara internal.
  2. Baris 2 (string nama = "Siti";): Variabel nama dibuat di lokasi yang sama, sejajar dengan variabel sebelumnya.
  3. Baris 4 (Console.WriteLine(...)): Operator + menyambung ketiga bagian teks menjadi satu string sebelum method menampilkannya.
  4. 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 class atau enum di file yang sama.
  • Top-level statements tidak dapat dicampur dengan method Main klasik 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.