c# kovarians dan pelanggaran: sekatan jenis nilai
Covariance dan Ciri -ciri Pelanggaran membolehkan tugasan jenis yang fleksibel. Walau bagaimanapun, keupayaan ini terhad apabila bekerja dengan jenis nilai.
mempamerkan kovarians, membenarkan tugasan IEnumerable<T>
rujukan kepada rujukan objek. Ini tidak meluas kepada jenis nilai, seperti yang digambarkan: T
IEnumerable<string> strList = new List<string>(); IEnumerable<object> objList = strList; // Compiles fine IEnumerable<int> intList = new List<int>(); IEnumerable<object> objList = intList; // Compilation error
Dengan kovarians, runtime bahasa biasa (CLR) tidak dapat menjamin pemeliharaan identiti nilai berkotak. Sebagai contoh, kaedah yang menerima
dan mengubah suai elemen tidak menjamin nilai kotak object[]
tetap tidak berubah. IEnumerable<int>
Atas ialah kandungan terperinci Mengapa kovarians dan pelanggaran bekerja dengan jenis nilai dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!