


Comment puis-je accéder à des objets de type anonyme en dehors de leur portée déclarée en C# ?
Jan 03, 2025 pm 01:19 PMAccès aux objets de type anonymes au-delà de la portée déclarée
En C#, les types anonymes sont générés dynamiquement en fonction des noms de propriétés et des valeurs extraites d'une source. Cependant, la portée de ces objets est limitée au bloc où ils sont déclarés. Cela soulève la question : comment pouvons-nous accéder à des objets de type anonyme en dehors de leur portée déclarée ?
Utilisation de "Cast by Exemple" (prudence conseillée)
Bien que ce soit généralement le cas Non recommandée, une technique dite de "cast by example" permet d'accéder à des objets de type anonyme au-delà de leur portée. Ce hack consiste à créer un objet « exemple » distinct avec les mêmes propriétés que le type anonyme auquel nous voulons accéder.
Implémentation :
- Créer le " exemple", en vous assurant qu'il a les mêmes propriétés que le type anonyme.
- Convertissez le type anonyme en type d'objet "exemple" en utilisant la méthode CastByExample. Cela renvoie le type anonyme comme type souhaité.
public void FuncB() { var example = new { Id = 0, Name = string.Empty }; var obj = CastByExample(FuncA(), example); Console.WriteLine(obj.Name); } private object FuncA() { var a = from e in DB.Entities where e.Id == 1 select new { Id = e.Id, Name = e.Name }; return a.FirstOrDefault(); } private T CastByExample<T>(object target, T example) { return (T)target; }
Avertissements :
- Cette technique n'est pas officiellement prise en charge par Microsoft.
- Cela peut entraîner un comportement inattendu et des erreurs potentielles.
- Il est fortement déconseillé d'utiliser cette approche en production. code.
En résumé, accéder à des objets de type anonyme au-delà de leur portée en utilisant "cast by example" est possible, mais c'est une pratique risquée qui doit être évitée autant que possible.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

C Fonction Langue Format de lettre ÉTAPES DE CONVERSION DE CAS

Quels sont les types de valeurs renvoyées par les fonctions du langage C? Qu'est-ce qui détermine la valeur de retour?

Gulc: Cibliothèque C construite à partir de zéro

Quelles sont les définitions et les règles d'appel des fonctions du langage C et quelles sont les

Comment fonctionne la bibliothèque de modèle standard C (STL)?

Où est la valeur de retour de la fonction de langue C stockée en mémoire?

Utilisation distincte et partage de phrases

Comment utiliser efficacement les algorithmes du STL (trier, trouver, transformer, etc.)?
