by

Operator Checked dan Unchecked di CSharp

Operator checked dan unchecked dapat digunakan dalam konteks operasi aritmatika untuk bilangan bulat. Jika kita membuat suatu program kemudian kita memberikan nilai yang lebih besar dari apa yang dapat di tampung oleh variabel tersebut maka, error akan terjadi pada program kita. Ada saatnya dimana kita ingin supaya kompiler tidak memberikan error pada saat kita melakukan operasi ini, untuk itu kita dapat menggunakan operator unchecked.

Dalam konteks checked, System.OverflowException akan terjadi pada saat runtime jika kita memberikan nilai yang lebih besar kedalam suatu variabel, atau akan terjadi kesalahan pada waktu kompilasi jika operasi yang dievaluasi berupa ekspresi konstan.

public static void Main()
{
int i = int.MaxValue;

checked
{
Console.Out.WriteLine(i + 1); // Exception
}

unchecked
{
Console.Out.WriteLine(i + 1); // Overflow
}
}

Jika program diatas dijalankan blok checked akan menghasilkan kesalahan karena mencoba untuk memberikan nilai sebesar nilai maksimal untuk tipe int ditambah satu.

Unhandled Exception: System.OverflowException: Arithmetic operation resulted in an overflow.

Sedangkan blok unchecked tidak akan menghasilkan kesalahan. Operasi unchecked ini mirip dengan cara kerja ordometer pada kendaraan kita, jika nilai maksimumnya sudah tercapai maka dia akan mulai lagi dari awal, misalnya jika nilai maksimumnya adalah 999,999 maka berjalan sejauh 1 kilometer lagi ordometer akan menunjukan nilai 000,000, yang merupakan nilai minimal ordometer. Demikian juga dengan int.MaxValue + 1 akan menjadi nilai int.MinValue (-2147483648) yang merupakan nilai minimal dari tipe data int.

Comment

Leave a Reply

Your email address will not be published. Required fields are marked *