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

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

Patricia Arquette
Lepaskan: 2025-01-06 04:03:46
asal
257 orang telah melayarinya

How Can I Cast an Object to a Generic Type in C#?

Menghantar Objek kepada Jenis Generik

Dalam C#, tidak mungkin untuk menghantar pembolehubah objek jenis kepada pembolehubah generik arbitrari jenis T. Walau bagaimanapun, terdapat dua teknik yang boleh mencapai hasil yang serupa:

1. Taip dengan Generik:

Operator (T) boleh digunakan dengan generik untuk menghantar objek kepada jenis tertentu. Contohnya:

using System;

public class MyClass
{
    public static T CastObject<T>(object input)
    {
        return (T)input;
    }
}
Salin selepas log masuk

Kaedah ini akan cuba menghantar objek input kepada jenis generik T yang ditentukan.

2. Penukaran dengan Convert.ChangeType():

Kaedah Convert.ChangeType() boleh digunakan untuk menukar objek kepada jenis tertentu menggunakan objek Type yang mewakili jenis sasaran. Contohnya:

public static T ConvertObject<T>(object input)
{
    Type targetType = typeof(T);
    return (T)Convert.ChangeType(input, targetType);
}
Salin selepas log masuk

Adalah penting untuk ambil perhatian bahawa pendekatan ini bergantung pada objek yang melaksanakan jenis yang diingini atau menyediakan penukaran yang sesuai.

Petua untuk Bekerja dengan Jenis Generik:

  • Utamakan keselamatan jenis dan elakkan penuangan apabila mungkin.
  • Jika jenis mempunyai antara muka yang sama, hantar ke antara muka itu sebaliknya.
  • Gunakan generik untuk mencipta kod boleh guna semula yang berfungsi dengan pelbagai jenis.
  • Pertimbangkan pemfaktoran semula jika penghantaran tidak boleh dielakkan.
  • Kendalikan kes tepi yang melibatkan pantulan atau nilai dinamik dengan berhati-hati.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghantar Objek kepada Jenis Generik dalam C#?. 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