Penukaran Jenis dalam Kaedah Generik
Soalan ini berkisar pada pemutus jenis dalam kaedah generik, di mana pengkompil memerlukan penukaran jenis eksplisit disebabkan oleh sifat dinamik generik.
Jenis Tidak Selesai Penukaran
Kod yang disediakan menunjukkan percubaan untuk menghantar jenis generik T kepada rentetan dalam blok if seperti ini:
T newT1 = "some text"; T newT2 = (string)t;
Walau bagaimanapun, pengkompil tidak dapat menyelesaikan penukaran ini kerana ia tidak mengetahui jenis T tertentu semasa masa penyusunan. Ia mempertimbangkan kemungkinan bahawa T mungkin bukan jenis boleh tukar kepada rentetan.
Menghantar ke Objek sebagai Langkah Pertengahan
Untuk menyelesaikan isu ini, seseorang perlu menghantar terlebih dahulu T ke objek (yang semua jenis boleh dihantar ke), dan kemudian secara eksplisit menghantar objek yang terhasil ke jenis yang diingini, seperti string:
T newT1 = (T)(object)"some text"; string newT2 = (string)(object)t;
Dengan menghantar secara eksplisit ke objek, anda membenarkan pengkompil untuk memisahkan proses penukaran dan melaksanakan hantaran dalam dua langkah. Ini menyelesaikan ketidakupayaan pengkompil untuk secara tersirat menukar T terus kepada rentetan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghantar Jenis T Generik dengan Selamat kepada Rentetan dalam Kaedah Generik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!