Pengendalian Limpahan untuk Integer C#
Dalam konteks masalah Project Euler 10, anda menghadapi tingkah laku yang tidak dijangka apabila menggunakan integer (int) pembolehubah untuk mengira jumlah nombor perdana di bawah dua juta. Walaupun keputusan melebihi nilai maksimum untuk int, C# tidak menimbulkan pengecualian limpahan.
Tidak seperti beberapa bahasa pengaturcaraan lain, operasi integer C# tidak membuang pengecualian apabila limpahan secara lalai. Ini bermakna apabila limpahan berlaku, hasilnya hanya "dibungkus" kepada nilai dalam julat jenis data. Dalam kes int, hasilnya mungkin berada dalam julat nilai negatif, jauh daripada jumlah sebenar yang anda cari.
Untuk mengendalikan limpahan secara eksplisit, anda mempunyai dua pilihan:
int result = checked(largeInt + otherLargeInt);
Dalam kes ini, limpahan akan membuang System.OverflowException.
Kebalikan daripada yang ditanda tidak ditanda, yang menyekat semakan limpahan. Ini hanya boleh digunakan apabila semakan limpahan didayakan dalam tetapan projek.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Limpahan Integer dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!