Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencipta Utiliti 'TryParse' Generik yang Boleh Dipercayai untuk Penukaran Rentetan dalam C#?

Bagaimanakah Saya Boleh Mencipta Utiliti 'TryParse' Generik yang Boleh Dipercayai untuk Penukaran Rentetan dalam C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-30 18:40:16200semak imbas

How Can I Create a Reliable Generic

Utiliti 'TryParse' Generik

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!

Kenyataan:
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