Rumah >pembangunan bahagian belakang >C++ >Mengapakah `short = short` Berfungsi dalam C# Walaupun Ralat Penukaran Tersirat?

Mengapakah `short = short` Berfungsi dalam C# Walaupun Ralat Penukaran Tersirat?

DDD
DDDasal
2025-01-23 08:37:09700semak imbas

Why Does `short  = short` Work in C# Despite Implicit Conversion Errors?

Memahami short = short Gelagat C#

Menambah secara langsung dua short pembolehubah dalam C# menghasilkan int disebabkan potensi limpahan, yang membawa kepada ralat pengkompil jika anda cuba memberikan hasil kembali kepada short:

<code class="language-csharp">Error: Cannot implicitly convert type 'int' to 'short'.</code>

Walau bagaimanapun, menggunakan operator penugasan kompaun = berkesan:

<code class="language-csharp">short a = 10;
short b = 20;
a += b; // This compiles and runs without error. Why?</code>

Sebab Disebalik Perbezaan

Kuncinya terletak pada cara pengkompil C# mengendalikan pengendali tugasan kompaun. Semasa menambah dua nilai short menghasilkan int, operator = secara tersirat menghantar hasil int kembali ke short sebelum tugasan. Ini bersamaan dengan:

<code class="language-csharp">a += b; // Is the same as: a = (short)(a + b);</code>

Pelakon tersirat ini mengelakkan ralat penukaran eksplisit, mendayakan kod ringkas untuk operasi aritmetik biasa. Pengkompil pada dasarnya mengendalikan potensi kehilangan data yang berkaitan dengan penukaran. Tingkah laku ini direka untuk kemudahan dan untuk mencerminkan kefungsian operator serupa dalam bahasa lain. Pengoptimuman pengkompil mengelakkan keperluan untuk lebih banyak kod verbose.

Atas ialah kandungan terperinci Mengapakah `short = short` Berfungsi dalam C# Walaupun Ralat Penukaran Tersirat?. 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