Maison > développement back-end > C++ > Les types génériques en C# peuvent-ils être convertis en types spécifiques ?

Les types génériques en C# peuvent-ils être convertis en types spécifiques ?

Mary-Kate Olsen
Libérer: 2024-12-29 17:21:13
original
558 Les gens l'ont consulté

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

Les types génériques peuvent-ils être convertis en types spécifiques ?

Dans une requête récente, un programmeur issu d'une formation C a demandé de l'aide pour convertir des types génériques en types spécifiques en C#. Le code fourni :

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

    return t;
}
Copier après la connexion

la compilation a échoué, le compilateur se plaignant de l'incapacité de convertir de « T » en chaîne.

Comprendre le problème nécessite de reconnaître que, même s'il se trouve dans un if, le compilateur ne peut pas déduire que « T » est un type chaîne. Par conséquent, le casting échoue. Pour résoudre ce problème, il faut d'abord convertir « T » en « objet », car n'importe quel « T » peut être converti en « objet », puis convertir davantage de « objet » en le type spécifique souhaité, tel que « chaîne ». 🎜>

Le code corrigé :

T newT1 = (T)(object)"some text";
string newT2 = (string)(object)t;
Copier après la connexion
démontre la bonne approche.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal