Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencapai Kovarian dengan Sokongan Indeks dalam Koleksi?
Kovarian dalam Koleksi dengan Sokongan Indeks
Kovarian dalam koleksi membolehkan item terbitan disimpan dalam koleksi yang diisytiharkan untuk jenis asas. Walau bagaimanapun, koleksi kovarian lalai, IEnumerable, tidak mempunyai sokongan indeks.
Seperti nota penanya, menyiarkan Senarai
Mungkin Penyelesaian
Dari .NET 4.5 dan seterusnya, IReadOnlyList
Mencipta Pembalut Kovarian
Jika koleksi boleh tulis dengan sokongan indeks diperlukan, kaedah sambungan boleh dibuat untuk membalut IList< ;T> dan dedahkan hanya subset kaedah yang memberikan kovarians yang diingini:
public static class Covariance { public static IIndexedEnumerable<T> AsCovariant<T>(this IList<T> tail) { return new CovariantList<T>(tail); } private class CovariantList<T> : IIndexedEnumerable<T> { // Implementation... } }
Kelas pembalut ini, CovariantList
Dengan memanggil AsCovariant
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Kovarian dengan Sokongan Indeks dalam Koleksi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!