Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengendalikan Limpahan Integer dalam C#?

Bagaimanakah Saya Boleh Mengendalikan Limpahan Integer dalam C#?

Linda Hamilton
Linda Hamiltonasal
2024-12-26 06:58:09734semak imbas

How Can I Handle Integer Overflow in C#?

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:

  1. Tetapan Projek: Dalam Visual Studio, anda boleh mendayakan semakan limpahan dalam tetapan projek dengan menetapkan pilihan "Pengesanan limpahan aritmetik" kepada "Dayakan untuk semua operasi aritmetik."
  2. Operator Disemak: Sebagai alternatif, anda boleh menggunakan kata kunci yang disemak untuk membuat pengiraan khusus disemak. Contohnya:
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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn