Dalam percubaan untuk mencipta utiliti yang mudah untuk mengesahkan penukaran rentetan, pembangun mengalami ralat kompilasi apabila menggunakan 'TryParse'. Ralat ini timbul kerana 'TryParse' tidak ditakrifkan dalam mana-mana antara muka atau kelas asas.
Untuk mengatasinya, pembangun meneroka kaedah alternatif. Satu pendekatan mencadangkan menggunakan TypeDescriptor dan keupayaan 'TryParse'nya. Walau bagaimanapun, pelaksanaan ini bergantung pada pengendalian pengecualian, yang menimbulkan kebimbangan tentang kebolehpercayaannya.
Untuk menangani isu ini, versi diubah suai utiliti generik 'TryParse' telah diperkenalkan:
public static bool Is(this string input, Type targetType) { try { TypeDescriptor.GetConverter(targetType).ConvertFromString(input); return true; } catch { return false; } }
Ini kod yang diubah suai menghapuskan pergantungan pada generik dan sebaliknya melepasi jenis yang akan disahkan secara eksplisit. Menggunakan kaedah 'ConvertFromString', ia cuba menukar rentetan input kepada jenis yang ditentukan. Pengecualian yang dihadapi semasa penukaran ditafsirkan sebagai kegagalan pengesahan, menghasilkan pulangan 'false' boolean.
Dengan memanfaatkan keupayaan penukaran TypeDescriptor, utiliti 'TryParse' yang disemak ini menyediakan mekanisme yang boleh dipercayai dan fleksibel untuk mengesahkan penukaran rentetan tanpa perangkap pelaksanaan berasaskan pengecualian.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Utiliti 'TryParse' Generik yang Boleh Dipercayai untuk Penukaran Rentetan dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!