Rumah >pembangunan bahagian belakang >C++ >Kenapa tidak boleh `senarai` ditugaskan ke pembolehubah` senarai` dalam C#?

Kenapa tidak boleh `senarai` ditugaskan ke pembolehubah` senarai` dalam C#?

Barbara Streisand
Barbara Streisandasal
2025-01-28 13:46:09463semak imbas

Why Can't a `List` Be Assigned to a `List` Variable in C#?

Kenapa tidak boleh

nilai objek pembolehubah? List<string> List<object> Dalam C#, cuba tetapkan objek ke

pembolehubah boleh menyebabkan kesilapan semasa penyusunan. Operasi ini tidak dibenarkan walaupun ia ditukarkan secara eksplisit. Mari kita meneroka prinsip di belakangnya:

List<string> Pertimbangkan adegan berikut: List<object>

Jika penukaran ini dapat dilaksanakan dengan jayanya, apa yang akan berlaku jika anda menambah jenis

ke senarai
<code class="language-csharp">List<string> sl = new List<string>();
List<object> ol;
ol = sl; // 产生编译时错误</code>
? Ini akan mewujudkan ketidakkonsistenan dalam senarai

, kerana senarai ol hanya mengharapkan rentetan. Apabila melintasi senarai , menghadapi contoh Foo akan menyebabkan kelainan penukaran kelas, menunjukkan bahawa ia tidak boleh ditukar menjadi rentetan. sl sl sebaliknya, penukaran dari ke sl mungkin berguna. Dengan menukar dari kelas yang lebih umum () ke kelas yang lebih spesifik (Foo), ia memastikan bahawa menambahkan sebarang elemen ke senarai rentetan tidak akan melanggar kekangan senarai objek. Walau bagaimanapun, C# mungkin tidak menyokong jenis penukaran ini.

Atas ialah kandungan terperinci Kenapa tidak boleh `senarai` ditugaskan ke pembolehubah` senarai` 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