Rumah > pembangunan bahagian belakang > C++ > Mengapakah `short = short` Berfungsi Manakala `short = short short` Tiada dalam C#?

Mengapakah `short = short` Berfungsi Manakala `short = short short` Tiada dalam C#?

Susan Sarandon
Lepaskan: 2025-01-23 08:46:14
asal
256 orang telah melayarinya

Why Does `short  = short` Work While `short = short   short` Doesn't in C#?

Sebab mengapa short = short berfungsi tetapi short = short short tidak berfungsi dalam C#

Dalam pengaturcaraan, pengurusan jenis data adalah penting. Dalam C#, perangkap biasa apabila berurusan dengan integer pendek ialah operator = berkelakuan berbeza daripada yang dijangkakan pada pembolehubah integer pendek. Mari kita mendalami isu ini.

Masalahnya

Pertimbangkan kod C# berikut:

<code class="language-csharp">short a, b;
a = 10;
b = 10;
a = a + b; // 错误:无法隐式转换类型“int”为“short”。

// 我们也可以使用算术赋值运算符编写此代码,如下所示

a += b; // 但此代码可以成功运行,为什么?

Console.Write(a);</code>
Salin selepas log masuk

Dalam baris pertama, memberikan a b kepada pembolehubah short a akan menyebabkan ralat. Ini kerana hasil tambah dua pendek ialah int dan tidak boleh ditukar secara tersirat kepada short. Walau bagaimanapun, menggunakan = pada baris kedua berjaya disusun. kenapa ni?

Memahami aritmetik integer

Jawapannya terletak pada cara aritmetik integer berfungsi dalam C#. Hasil penambahan integer ialah int, tanpa mengira jenis data operan. Ini mengelakkan risiko limpahan integer, yang boleh berlaku jika keputusan short short ialah short.

= Operator

Pengendali

= ialah singkatan untuk a = a b. Mengikut spesifikasi C#, jika jenis pemulangan pengendali boleh ditukar secara tersirat kepada jenis x (dalam kes ini, short), maka operasi itu dinilai kepada x = (T)(x op y), dengan T ialah jenis x .

Untuk a = b, pengkompil memasukkan hantaran yang diperlukan untuk menukar hasil a b (iaitu, int) kepada short. Ini membolehkan tugasan kompaun berfungsi seperti yang diharapkan.

Kesimpulan

Walaupun gelagat penjumlahan integer dalam C# mungkin mengelirukan pada mulanya, memahami peraturan pengendali aritmetik dan tugasan asas adalah penting untuk mengelakkan tingkah laku yang tidak dijangka dan menulis kod yang mantap. Dengan mengurus jenis data dengan teliti dan menggunakan operator = dengan betul, pembangun boleh memastikan program mereka berkelakuan seperti yang diharapkan.

Atas ialah kandungan terperinci Mengapakah `short = short` Berfungsi Manakala `short = short short` Tiada dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan