Rumah > pembangunan bahagian belakang > C++ > Bolehkah kekangan kaedah C# Generik menyekat hujah jenis ke jenis angka tertentu?

Bolehkah kekangan kaedah C# Generik menyekat hujah jenis ke jenis angka tertentu?

Susan Sarandon
Lepaskan: 2025-02-01 23:31:11
asal
320 orang telah melayarinya

Can C# Generic Method Constraints Restrict Type Arguments to Specific Numeric Types?

C#Kekangan kaedah generik hanya boleh dihadkan kepada jenis berangka?

Pengenalan

membebaskan membolehkan pengaturcara menentukan jenis yang boleh beroperasi pada pelbagai jenis data. Walau bagaimanapun, kadang -kadang mungkin perlu untuk mengehadkan jenis jenis generik. Soalan ini menerangkan sama ada terdapat kaedah yang boleh mengehadkan parameter generik hanya untuk jenis nilai tertentu. kekangan had jenis generik

C#

Kata kunci membolehkan pemaju menentukan kekangan parameter generik. Kekangan ini boleh digunakan untuk memastikan bahawa parameter jenis melaksanakan antara muka tertentu atau mewarisi kelas asas tertentu. antara muka berangka yang sedia ada

where Malangnya, C# tidak menyediakan antara muka yang mengkhususkan diri dalam jenis INT16, INT32, INT64, UINT16, UINT32, dan UINT64. Oleh itu, kata kunci tidak boleh digunakan secara langsung untuk mengehadkan parameter generik ke dalam jenis khusus ini.

kaedah alternatif

Sebagai alternatif, sila pertimbangkan kaedah berikut:

where

Antara muka : Net 7 memperkenalkan antara muka di ruang nama

. Antara muka ini menunjukkan bahawa semua jenis integer binari boleh digunakan untuk mengehadkan parameter jenis ke jenis integer.

Mod Kilang
    : Seperti yang dicadangkan oleh Anders Hejlsberg, anda boleh menggunakan mod kilang untuk membuat matriks yang menyokong pelbagai jenis berangka. Dalam kaedah ini, antara muka
  • ditakrifkan, dan matriks menggunakan contoh antara muka ini sebagai parameter. IBinaryInteger Kelas Strategik : Pilihan lain adalah menggunakan pelaksanaan antara muka awam dan menyediakan kelas strategik yang menyediakan pelaksanaan khusus. Strategi ini boleh diserahkan kepada matriks untuk membolehkan sokongan untuk jenis berangka yang berbeza. System.Numerics IBinaryInteger<T>
  • Kesimpulan
  • Walaupun C# tidak secara langsung menyokong batasan parameter generik sebagai jenis nilai tertentu dengan kekangan, ia boleh menggunakan Calculator<T> antara muka, mod kilang dan kaedah alternatif strategi untuk mencapai fungsi yang diperlukan.

Atas ialah kandungan terperinci Bolehkah kekangan kaedah C# Generik menyekat hujah jenis ke jenis angka tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan