Cara Menggunakan where (Pembatasan Tipe Generik)

Cara Menggunakan Where Pembatasan Tipe Generik



Kendala tipe generik di C# memungkinkan pengembang untuk menentukan kumpulan tipe yang dapat diwakili oleh parameter tipe generik. Fitur ini memungkinkan kompiler menerapkan keamanan jenis dan mencegah kesalahan yang mungkin terjadi selama runtime. Salah satu kendala yang paling banyak digunakan adalah 'Di mana' kendala, artikel ini akan menjelaskan apa itu 'Di mana' kendala ada di C # dan bagaimana menggunakannya dalam kode Anda.

Apa Kendala 'di mana'.

Itu 'Di mana' kendala adalah kendala tipe generik dalam C # yang memungkinkan pengembang untuk menentukan parameter tipe yang dapat diwakili oleh tipe generik. Kendala ditentukan menggunakan 'Di mana' kata kunci diikuti oleh parameter tipe dan kendala, sintaks untuk menggunakan 'Di mana' kendala adalah sebagai berikut:

ClassName kelas publik < T > dimana t : paksaan

{

// Implementasi kelas

}

Di sini 'Nama kelas' mewakili nama kelas dengan parameter tipe generik 'T' . Itu 'Di mana' kata kunci menentukan batasan untuk parameter tipe, dan 'paksaan' adalah tipe yang harus diwakili oleh parameter tipe.







Mari kita ambil contoh kelas generik yang menerima parameter tipe dan mengembalikan nilai minimum dari array nilai. Di sini kode menggunakan 'Di mana' kendala untuk menentukan bahwa parameter tipe harus berupa tipe numerik:



menggunakan Sistem ;

MinValue kelas publik < T > dimana t : struct , Sebanding , iConvertible

{

publik T GetMinValue ( T [ ] Himpunan )

{

jika ( Himpunan == batal || Himpunan. Panjang == 0 ) {

melempar ArgumentException baru ( 'Array tidak boleh nol atau kosong' ) ;

}

T min = Himpunan [ 0 ] ;

untuk ( int Saya = 1 ; Saya < Himpunan. Panjang ; Saya ++ ) {

jika ( Himpunan [ Saya ] . Dibandingkan dengan ( min ) < 0 ) {

min = Himpunan [ Saya ] ;

}

}

kembali min ;

}

}

program kelas umum

{

publik statis ruang kosong Utama ( )

{

int [ ] intArray = { 1 , 2 , 3 , 4 , 5 } ;

MinValue < int > intMinValue = MinValue baru < int > ( ) ;

int intMin = intMinValue. DapatkanMinValue ( intArray ) ;

Menghibur. WriteLine ( 'Nilai minimum dari intArray: {0}' , intMin ) ;

dobel [ ] doubleArray = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;

MinValue < dobel > doubleMinValue = MinValue baru < dobel > ( ) ;

dobel gandaMin = doubleMinValue. DapatkanMinValue ( doubleArray ) ;

Menghibur. WriteLine ( 'Nilai minimum doubleArray: {0}' , gandaMin ) ;

}

}

Di sini, kami telah mendefinisikan kelas generik “Nilai Min” yang menerima parameter tipe 'T' dan mengembalikan nilai minimum dari array nilai. Selanjutnya, kami telah menggunakan 'Di mana' batasan untuk menentukan bahwa parameter tipe harus berupa struct, mengimplementasikan antarmuka IComparable, dan mengimplementasikan antarmuka IConvertible. Batasan ini memastikan bahwa hanya tipe numerik yang diizinkan sebagai parameter tipe.



  Bentuk, persegi panjang Deskripsi dibuat secara otomatis





Kesimpulan

Itu 'Di mana' constraint di C# adalah fitur canggih yang memungkinkan pengembang menerapkan keamanan jenis dan mencegah kesalahan selama runtime. Dengan menggunakan batasan ini, Anda dapat menentukan kumpulan tipe yang dapat diwakili oleh parameter tipe generik. Artikel ini telah memberikan gambaran tentang 'Di mana' kendala dalam C # dan menunjukkan bagaimana menggunakannya dengan kode.