Bagikan melalui


Peristiwa (Panduan Pemrograman C#)

Tindakan yang diambil program dinyatakan dalam pernyataan. Tindakan umum termasuk mendeklarasikan variabel, menetapkan nilai, metode panggilan, perulangan melalui koleksi, dan percabangan ke satu atau blok kode lain, tergantung pada kondisi tertentu. Urutan di mana pernyataan dijalankan dalam program disebut alur kontrol atau alur eksekusi. Alur kontrol dapat bervariasi setiap kali program dijalankan, tergantung pada bagaimana program bereaksi terhadap input yang diterimanya pada durasi.

Pernyataan dapat terdiri dari satu baris kode yang berakhiran titik koma, atau serangkaian pernyataan baris tunggal dalam blok. Blok pernyataan diapit dalam tanda kurung {} dan dapat berisi blok berlapis. Kode berikut menunjukkan dua contoh pernyataan baris tunggal, dan blok pernyataan multibaris:

    public static void Main()
    {
        // Declaration statement.
        int counter;

        // Assignment statement.
        counter = 1;

        // Error! This is an expression, not an expression statement.
        // counter + 1;

        // Declaration statements with initializers are functionally
        // equivalent to  declaration statement followed by assignment statement:
        int[] radii = [15, 32, 108, 74, 9]; // Declare and initialize an array.
        const double pi = 3.14159; // Declare and initialize  constant.

        // foreach statement block that contains multiple statements.
        foreach (int radius in radii)
        {
            // Declaration statement with initializer.
            double circumference = pi * (2 * radius);

            // Expression statement (method invocation). A single-line
            // statement can span multiple text lines because line breaks
            // are treated as white space, which is ignored by the compiler.
            System.Console.WriteLine("Radius of circle #{0} is {1}. Circumference = {2:N2}",
                                    counter, radius, circumference);

            // Expression statement (postfix increment).
            counter++;
        } // End of foreach statement block
    } // End of Main method body.
} // End of SimpleStatements class.
/*
   Output:
    Radius of circle #1 = 15. Circumference = 94.25
    Radius of circle #2 = 32. Circumference = 201.06
    Radius of circle #3 = 108. Circumference = 678.58
    Radius of circle #4 = 74. Circumference = 464.96
    Radius of circle #5 = 9. Circumference = 56.55
*/

Jenis pernyataan

Tabel berikut mencantumkan berbagai jenis pernyataan dalam C# dan kata kunci terkaitnya, dengan tautan ke topik yang menyertakan informasi selengkapnya:

Kategori Kata kunci/catatan C#
Pernyataan deklarasi Pernyataan deklarasi memperkenalkan variabel atau konstanta baru. Deklarasi variabel dapat secara opsional menetapkan nilai ke variabel. Dalam deklarasi konstanta, penugasan diperlukan.
Pernyataan ekspresi Pernyataan ekspresi yang menghitung nilai harus menyimpan nilai dalam variabel.
Pernyataan pilihan Pernyataan pemilihan memungkinkan Anda untuk bercabang ke bagian kode yang berbeda, tergantung pada satu atau beberapa kondisi yang ditentukan. Untuk informasi selengkapnya, lihat topik berikut ini:
Pernyataan perulangan Pernyataan perulangan memungkinkan Anda mengulangi koleksi seperti array, atau melakukan serangkaian pernyataan yang sama berulang kali hingga kondisi tertentu terpenuhi. Untuk informasi selengkapnya, lihat topik berikut ini:
Pernyataan jump Pernyataan lompat mentransfer kontrol ke bagian kode lain. Untuk informasi selengkapnya, lihat topik berikut ini:
Pernyataan penanganan pengecualian Pernyataan penanganan pengecualian memungkinkan Anda untuk pulih dengan anggun dari kondisi luar biasa yang terjadi pada waktu proses. Untuk informasi selengkapnya, lihat topik berikut ini:
checked dan unchecked Pernyataan checked dan unchecked memungkinkan Anda menentukan apakah operasi numerik jenis integral diizinkan untuk menyebabkan luapan ketika hasilnya disimpan dalam variabel yang terlalu kecil untuk menahan nilai yang dihasilkan.
Pernyataan await Jika Anda menandai metode dengan pengubah asinkron, Anda dapat menggunakan operator menunggu dalam metode tersebut. Saat kontrol mencapai ekspresi await dalam metode asinkron, kontrol kembali ke pemanggil, dan kemajuan dalam metode ditangguhkan hingga tugas yang ditunggu selesai. Ketika tugas selesai, eksekusi dapat dilanjutkan dalam metode.

Untuk contoh sederhana, lihat bagian "Metode Asinkron" dari Metode. Untuk informasi selengkapnya, lihat Pemrograman Asinkron dengan asinkron dan tunggu.
Pernyataan yield return Iterator melakukan perulangan kustom pada koleksi, seperti daftar atau array. Iterator menggunakan pernyataan yield return untuk mengembalikan setiap elemen satu per satu. Saat pernyataan yield return pengembalian tercapai, lokasi saat ini dalam kode diingat. Eksekusi dimulai ulang dari lokasi tersebut saat iterator dipanggil lain kali.

Untuk informasi selengkapnya, lihat Iterator.
Pernyataan fixed Pernyataan tetap mencegah pengumpul sampah merelokasi variabel yang dapat dipindah. Untuk informasi selengkapnya, lihat tetap.
Pernyataan lock Pernyataan kunci memungkinkan Anda membatasi akses ke blok kode hanya untuk satu utas pada satu waktu. Untuk informasi lebih lanjut, lihat kunci.
Pernyataan berlabel Anda dapat memberikan label pada pernyataan lalu menggunakan kata kunci goto untuk melompat ke pernyataan berlabel. (Lihat contoh di baris berikut.)
Pernyataan kosong Pernyataan kosong terdiri dari satu titik koma. Ini tidak melakukan apa pun dan dapat digunakan di tempat-tempat di mana pernyataan diperlukan tetapi tidak ada tindakan yang perlu dilakukan.

Pernyataan deklarasi

Kode berikut menunjukkan contoh deklarasi variabel dengan dan tanpa penugasan awal, dan deklarasi konstanta dengan inisialisasi yang diperlukan.

// Variable declaration statements.
double area;
double radius = 2;

// Constant declaration statement.
const double pi = 3.14159;

Pernyataan ekspresi

Kode berikut menunjukkan contoh pernyataan ekspresi, termasuk penugasan, pembuatan objek dengan penugasan, dan pemanggilan metode.

// Expression statement (assignment).
area = 3.14 * (radius * radius);

// Error. Not  statement because no assignment:
//circ * 2;

// Expression statement (method invocation).
System.Console.WriteLine();

// Expression statement (new object creation).
System.Collections.Generic.List<string> strings =
    new System.Collections.Generic.List<string>();

Pernyataan kosong

Contoh berikut menunjukkan dua penggunaan untuk pernyataan kosong:

void ProcessMessages()
{
    while (ProcessMessage())
        ; // Statement needed here.
}

void F()
{
    //...
    if (done) goto exit;
//...
exit:
    ; // Statement needed here.
}

Pernyataan disematkan

Beberapa pernyataan, misalnya, pernyataan iterasi, selalu memiliki pernyataan tersemat yang mengikutinya. Pernyataan yang disematkan ini dapat berupa satu pernyataan atau beberapa pernyataan yang diapit oleh tanda kurung {} dalam blok pernyataan. Bahkan pernyataan tersemat satu baris dapat diapit dalam tanda kurung {}, seperti yang ditunjukkan dalam contoh berikut:

// Recommended style. Embedded statement in  block.
foreach (string s in System.IO.Directory.GetDirectories(
                        System.Environment.CurrentDirectory))
{
    System.Console.WriteLine(s);
}

// Not recommended.
foreach (string s in System.IO.Directory.GetDirectories(
                        System.Environment.CurrentDirectory))
    System.Console.WriteLine(s);

Pernyataan tertanam yang tidak diapit dalam tanda kurung {} tidak dapat menjadi pernyataan deklarasi atau pernyataan berlabel. Hal ini ditunjukkan di contoh berikut:

if(pointB == true)
    //Error CS1023:
    int radius = 5;

Letakkan pernyataan yang disematkan dalam blok untuk memperbaiki kesalahan:

if (b == true)
{
    // OK:
    System.DateTime d = System.DateTime.Now;
    System.Console.WriteLine(d.ToLongDateString());
}

Blok pernyataan berlapis

Blok pernyataan dapat ditumpuk, seperti yang ditunjukkan dalam kode berikut:

foreach (string s in System.IO.Directory.GetDirectories(
    System.Environment.CurrentDirectory))
{
    if (s.StartsWith("CSharp"))
    {
        if (s.EndsWith("TempFolder"))
        {
            return s;
        }
    }
}
return "Not found.";

Pernyataan yang tidak dapat dijangkau

Jika compiler menentukan bahwa alur kontrol tidak pernah dapat mencapai pernyataan tertentu dalam keadaan apa pun, itu akan menghasilkan peringatan CS0162, seperti yang ditunjukkan dalam contoh berikut:

// An over-simplified example of unreachable code.
const int val = 5;
if (val < 4)
{
    System.Console.WriteLine("I'll never write anything."); //CS0162
}

Spesifikasi bahasa C#

Untuk informasi selengkapnya, lihat bagian Pernyataan dari spesifikasi bahasa C#.

Lihat juga