Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengekang Jenis Generik dalam .NET untuk Menyokong Lebihan Muatan Operator?
Kekangan Lebih Muatan Operator dalam .NET Generics
Apabila bekerja dengan kaedah generik, adalah wajar untuk mengehadkan jenis yang diterima kepada yang mempunyai operator tertentu yang terlebih beban, seperti operator penolakan. Walau bagaimanapun, menggunakan antara muka sebagai kekangan menghadapi had kerana antara muka tidak menyokong lebihan muatan pengendali.
Untuk menangani isu ini, penyelesaian muncul dalam .NET 3.5 dengan pengenalan perpustakaan yang membolehkan capaian yang cekap dan mudah kepada pengendali dalam generik. Pustaka ini membenarkan operasi seperti:
T result = Operator.Add(first, second); // implicit <T>; here
Sebagai alternatif, dalam C# 4.0, kata kunci "dinamik" membenarkan penaipan dinamik, menjadikannya mungkin untuk menambah dua nilai jenis T menggunakan operator " ":
static T Add<T>(T x, T y) { dynamic dx = x, dy = y; return dx + dy; }
Satu lagi pendekatan untuk .NET 2.0 melibatkan penciptaan antara muka dengan kaedah untuk setiap pengendali, seperti sebagai:
interface ICalc<T> { T Add(T,T)() T Subtract(T,T)() }
Walau bagaimanapun, penyelesaian ini memerlukan pemutus jenis yang jelas kepada ICalc
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekang Jenis Generik dalam .NET untuk Menyokong Lebihan Muatan Operator?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!