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
Lepaskan: 2024-12-30 18:40:16
asal
136 orang telah melayarinya

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;
    }
}
Salin selepas log masuk

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!

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