Menyelesaikan "Nilai Jenis 'T' Tidak Boleh Ditukar" Ralat dalam Casting Generik
Mesej ralat dalam bentuk "Nilai jenis ' T' tidak boleh ditukar kepada" boleh timbul apabila cuba menghantar parameter jenis generik kepada jenis tertentu dalam generik kaedah.
Pertimbangkan kaedah berikut:
T HowToCast<T>(T t) { if (typeof(T) == typeof(string)) { T newT1 = "some text"; T newT2 = (string)t; } return t; }
Kod ini cuba menghantar pembolehubah input t kepada rentetan jika parameter generik T adalah daripada rentetan jenis. Walau bagaimanapun, pengkompil menimbulkan ralat disebabkan oleh pengehadan berikut:
Untuk menyelesaikan isu ini, penghantaran mesti menggunakan dua langkah berikut pendekatan:
Yang dibetulkan kod ialah:
T newT1 = (T)(object)"some text"; string newT2 = (string)(object)t;
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Nilai Jenis 'T' Tidak Boleh Ditukar' dalam Kaedah C# Generik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!