Rumah >pembangunan bahagian belakang >C++ >Mengapa saya tidak dapat menyenaraikan senarai ke C# 2.0?
C# 2.0 Senarai Generik Generik:
Walaupun ia berubah secara eksplisit, ia akan gagal, yang menyoroti masalahnya. Harus jelas bahawa ini bukan masalah koordinasi. Malah, untuk memastikan keselamatan kompilasi, tugasan ini jelas dilarang.
<code class="language-csharp">List<动物> animalsList = new List<长颈鹿>();</code>Risiko potensi varians dapat dijelaskan melalui contoh berikut:
Kod ini kelihatan tidak berbahaya, tetapi ia boleh menyebabkan tingkah laku tidak sengaja dan kerosakan data. Berikan jenis yang diperolehi (singa) kepada jenis asas (haiwan) untuk membenarkan pelanggaran peraturan keselamatan jenis.
<code class="language-csharp">List<长颈鹿> giraffes = new List<长颈鹿>(); giraffes.Add(new 长颈鹿()); List<动物> animals = giraffes; animals.Add(new 狮子());</code>Walaupun perbezaan jenis pemeriksaan jenis rujukan semasa array menyokong runtime, generik direka untuk mencapai keselamatan jenis kompilasi.
Pengenalan sokongan varians keselamatan di C# 4, tetapi hanya terhad kepada antara muka dan komisen yang ditugaskan. Koordinat dibenarkan untuk digunakan untuk func
dan ienumeration
, dan penyongsang dibenarkan menggunakan.
Atas ialah kandungan terperinci Mengapa saya tidak dapat menyenaraikan senarai ke C# 2.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!