Rumah > pembangunan bahagian belakang > C++ > Bolehkah Jenis Generik dalam C# Dihantar kepada Jenis Tertentu?

Bolehkah Jenis Generik dalam C# Dihantar kepada Jenis Tertentu?

Mary-Kate Olsen
Lepaskan: 2024-12-29 17:21:13
asal
550 orang telah melayarinya

Can Generic Types in C# Be Cast to Specific Types?

Bolehkah Jenis Generik Dipancarkan kepada Jenis Tertentu?

Dalam pertanyaan baru-baru ini, seorang pengaturcara daripada latar belakang C meminta bantuan dengan menghantar jenis generik kepada jenis tertentu dalam C#. Kod yang disediakan:

T HowToCast<T>(T t)
{
    if (typeof(T) == typeof(string))
    {
        T newT1 = "some text";
        T newT2 = (string)t;
    }

    return t;
}
Salin selepas log masuk

gagal dihimpun, dengan pengkompil mengadu tentang ketidakupayaan untuk menukar daripada 'T' kepada rentetan.

Memahami isu itu memerlukan pengiktirafan itu, walaupun berada dalam if pernyataan, pengkompil tidak boleh membuat kesimpulan bahawa 'T' ialah jenis rentetan. Akibatnya, pemutus gagal. Untuk menangani perkara ini, seseorang mesti menghantar 'T' ke 'objek' terlebih dahulu, kerana mana-mana 'T' boleh dihantar ke 'objek', dan kemudian menghantar lebih jauh daripada 'objek' kepada jenis khusus yang dikehendaki, seperti 'rentetan'.

Kod yang diperbetulkan:

T newT1 = (T)(object)"some text";
string newT2 = (string)(object)t;
Salin selepas log masuk

menunjukkan pendekatan yang betul.

Atas ialah kandungan terperinci Bolehkah Jenis Generik dalam C# Dihantar 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