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 mitra yang aman untuk 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.

Nota

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 Kovariansi dan Kontravariansi.

Komparasi kesetaraan dan urutan

Fungsionalitas pengumpulan

  • 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 antarmuka ICollection<T> generik dengan metode untuk pengambilan data terindeks.

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

  • Antarmuka IEnumerable<T> generik menyediakan struktur enumerator generik. Antarmuka IEnumerator<T> generik yang diimplementasikan oleh enumerator generik mewarisi antarmuka nongenerik IEnumerator; anggota MoveNext dan Reset, yang tidak bergantung pada parameter jenis T, 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 ruang nama System.Numerics yang menjelaskan jenis yang mirip 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