Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menghantar atau Menukar Objek kepada Jenis Generik dalam C#?

Bagaimanakah Saya Boleh Menghantar atau Menukar Objek kepada Jenis Generik dalam C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-05 11:13:42517semak imbas

How Can I Cast or Convert Objects to Generic Types in C#?

Membuat Pembolehubah Menggunakan Pembolehubah Jenis Generik

Dalam pengaturcaraan C#, adalah mungkin untuk menghantar pembolehubah objek jenis kepada pembolehubah jenis T generik , di mana T ditakrifkan dalam pembolehubah Jenis. Begini caranya:

Kaedah generik CastObject mengambil objek sebagai input dan menghantarnya ke pembolehubah jenis T menggunakan ungkapan hantaran mudah, seperti:

public T CastObject<T>(object input) {   
    return (T) input;   
}

Kaedah generik ConvertObject melakukan penukaran dan bukannya pelakon langsung. Ia menggunakan kaedah Convert.ChangeType untuk menukar objek input kepada jenis generik yang ditentukan, memberikan lebih fleksibiliti apabila menghantar antara jenis yang tidak serasi:

public T ConvertObject<T>(object input) {
    return (T) Convert.ChangeType(input, typeof(T));
}

Sebagai contoh, diberi nilai objek1 dengan nilai perpuluhan, menghantarnya kepada int menggunakan kaedah ConvertObject akan menghasilkan nilai integer:

Type intType = typeof(Int32);
object value1 = 1000.1;

int value2 = Convert.ChangeType(value1, intType); // value2 will be 1000

Adalah penting untuk ambil perhatian bahawa penghantaran dan penukaran mungkin membawa kepada pengecualian masa jalan jika jenis sasaran tidak serasi dengan jenis sumber. Sentiasa penting untuk mengendalikan operasi tuangan jenis dengan berhati-hati dan memastikan hasil yang diharapkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghantar atau Menukar Objek kepada Jenis Generik 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