Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menguji Secara Umum jika Rentetan Boleh Dihuraikan kepada Jenis Tertentu?

Bagaimanakah Saya Boleh Menguji Secara Umum jika Rentetan Boleh Dihuraikan kepada Jenis Tertentu?

Susan Sarandon
Lepaskan: 2024-12-30 19:05:16
asal
347 orang telah melayarinya

How Can I Generically Test if a String Can Be Parsed to a Specific Type?

Menguji Rentetan Secara Umum dengan TryParse

Dalam percubaan untuk mencipta kaedah sambungan generik untuk mengesahkan nilai rentetan, anda menghadapi masalah dengan 'TryParse' tidak ditakrifkan dalam mana-mana antara muka dan mencari penyelesaian alternatif.

Pendekatan Alternatif Menggunakan TypeDescriptor

Kelas TypeDescriptor menyediakan cara untuk mendapatkan semula penukar jenis untuk jenis data tertentu. Penukar ini boleh digunakan untuk menukar rentetan kepada dan daripada jenis lain. Berikut ialah versi kod anda yang dikemas kini:

public static bool Is(this string input, Type targetType)
{
    try
    {
        TypeDescriptor.GetConverter(targetType).ConvertFromString(input);
        return true;
    }
    catch
    {
        return false;
    }
}
Salin selepas log masuk

Dalam versi ini, anda boleh melepasi sebarang jenis sasaran dan ia akan cuba menukar rentetan kepada jenis itu menggunakan penukar yang sesuai. Jika penukaran berjaya, kaedah mengembalikan benar; jika tidak, ia mengembalikan palsu.

Pengecualian dan Alternatif

Sementara pendekatan berasaskan pengecualian berfungsi, anda mungkin lebih suka pilihan yang lebih mantap. Daripada menggunakan pengecualian, anda boleh mengembalikan Nullable nilai, menunjukkan sama ada penukaran berjaya.

Sebagai alternatif, anda boleh membuat lebihan untuk jenis biasa, seperti int, double dan DateTime serta mentakrifkan logik tersuai untuk setiap jenis. Ini akan menghapuskan keperluan untuk pelaksanaan generik dan menyediakan penukaran yang lebih cekap dan selamat jenis.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menguji Secara Umum jika Rentetan Boleh Dihuraikan kepada Jenis 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