Maison >développement back-end >C++ >Comment puis-je convertir un type anonyme en C# pour accéder à ses propriétés ?
Transformer un type anonyme pour accéder aux propriétés
Retransformer un type anonyme en son type d'origine peut être problématique lors de l'accès à ses propriétés. Pour résoudre ce problème, on peut utiliser une astuce pour déduire le type correct.
Tromper le compilateur
La méthode Cast
private static T Cast<T>(T typeHolder, Object x) { // typeHolder above is just for compiler magic // to infer the type to cast x to return (T)x; }
Utilisation :
var a = new { Id = 1, Name = "Bob" }; TestMethod(a); ... private static void TestMethod(Object x) { // This is a dummy value, just to get 'a' to be of the right type var a = new { Id = 0, Name = "" }; a = Cast(a, x); Console.Out.WriteLine(a.Id + ": " + a.Name); }
Méthode de conversion alternative
Une méthode alternative consiste à créer une méthode d'extension CastTo
private static T CastTo<T>(this Object value, T targetType) { // targetType above is just for compiler magic // to infer the type to cast value to return (T)value; }
Utilisation :
var value = x.CastTo(a);
Recommandation
Bien que ces techniques permettent de lancer des types anonymes, il est recommandé d'utiliser de vrais types pour plus de clarté et de facilité d’utilisation.
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!