Maison > développement back-end > C++ > Comment puis-je renvoyer des types anonymes à partir d'une méthode C# ?

Comment puis-je renvoyer des types anonymes à partir d'une méthode C# ?

DDD
Libérer: 2024-12-25 15:34:09
original
687 Les gens l'ont consulté

How Can I Return Anonymous Types from a C# Method?

Renvoi de types anonymes en C#

En C#, les types anonymes sont un moyen pratique de créer des objets temporaires avec des propriétés personnalisées. Cependant, lorsqu'il s'agit de renvoyer des types anonymes à partir d'une méthode, il existe une limitation.

Problème :

Comment renvoyer un type anonyme à partir d'une méthode, compte tenu du code suivant :

public "TheAnonymousType" TheMethod(SomeParameter)
{
  using (MyDC TheDC = new MyDC())
  {
     var TheQueryFromDB = (....
                           select new { SomeVariable = ....,
                                        AnotherVariable = ....}
                           ).ToList();

      return "TheAnonymousType";
    }
}
Copier après la connexion

Réponse :

Malheureusement, il n'est pas possible de renvoyer un type anonyme directement à partir d'une méthode en C#.

La raison réside dans le fait que les types anonymes sont compilés au moment de l'exécution et n'ont pas de type connu au moment de la compilation. Par conséquent, ils ne peuvent pas être renvoyés sous la forme d'un type nommé spécifique, tel que "TheAnonymousType" dans votre exemple.

Solution :

Pour contourner cette limitation, vous disposez de deux options. :

  1. Utilisez un type anonyme fortement typé :
    Créez un type anonyme fortement typé utilisant var anonymeObject = new { ... }. Cela créera un type nommé avec les propriétés spécifiées, qui peuvent être renvoyées par la méthode.
  2. Utiliser un objet conteneur :
    Renvoyer le type anonyme dans le cadre d'un objet conteneur, tel qu'une liste. Cela vous permet de renvoyer une collection d'objets, y compris des types anonymes.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal