Bagikan melalui


Antarmuka generik di .NET

Artikel ini memberikan gambaran umum tentang . Antarmuka generik NET yang menyediakan fungsionalitas umum di seluruh keluarga jenis generik.

Antarmuka generik menyediakan padanan yang aman untuk jenis ke antarmuka nongenerik untuk perbandingan pemesanan dan kesetaraan, dan untuk fungsionalitas yang dibagikan oleh jenis koleksi generik. .NET 7 memperkenalkan antarmuka generik untuk jenis seperti angka, misalnya, System.Numerics.INumber<TSelf>. Antarmuka ini memungkinkan Anda menentukan metode generik yang menyediakan fungsionalitas matematika, di mana parameter jenis generik dibatasi menjadi jenis yang mengimplementasikan antarmuka generik dan numerik.

Catatan

Parameter jenis dari beberapa antarmuka generik ditandai kovarian atau kontravarian, memberikan fleksibilitas yang lebih besar dalam menetapkan dan menggunakan jenis yang mengimplementasikan antarmuka ini. Untuk informasi selengkapnya, lihat Kovarian dan Kontravarian.

Perbandingan kesetaraan dan pemesanan

Fungsionalitas Koleksi

  • Antarmuka ICollection<T> generik adalah antarmuka dasar untuk jenis koleksi generik. Ini menyediakan fungsionalitas dasar untuk menambahkan, menghapus, menyalin, dan menghitung elemen. ICollection<T> mewarisi dari generik IEnumerable<T> dan nongenerik IEnumerable.

  • Antarmuka IList<T> generik memperluas ICollection<T> antarmuka generik dengan metode untuk pengambilan terindeks.

  • Antarmuka IDictionary<TKey,TValue> generik memperluas ICollection<T> antarmuka generik dengan metode untuk pengambilan terindeks. Jenis kamus generik di pustaka kelas dasar .NET juga mengimplementasikan IDictionary antarmuka nongenerik.

  • Antarmuka IEnumerable<T> generik menyediakan struktur enumerator generik. Antarmuka IEnumerator<T> generik yang diimplementasikan oleh enumerator generik mewarisi antarmuka nongenerik IEnumerator; MoveNext, dan Reset anggota, yang tidak bergantung pada parameter Tjenis, hanya muncul pada antarmuka nongenerik. Ini berarti bahwa setiap konsumen antarmuka nongenerik juga dapat mengonsumsi antarmuka generik.

Fungsionalitas matematika

.NET 7 memperkenalkan antarmuka generik di System.Numerics namespace layanan yang menjelaskan jenis seperti angka dan fungsionalitas yang tersedia untuk mereka. 20 jenis numerik yang disediakan pustaka kelas dasar .NET, misalnya, Int32 dan Double, telah diperbarui untuk mengimplementasikan antarmuka ini. Yang paling menonjol dari antarmuka ini adalah INumber<TSelf>, yang kira-kira sesuai dengan angka "nyata".

Untuk informasi selengkapnya tentang antarmuka ini, lihat Matematika generik.

Lihat juga