3 votes

Création d'un type dynamique anonyme de variables

Puis-je créer une variable de type anonyme et ajouter ultérieurement d'autres propriétés ?

Par exemple var x = new { Name = "Ahmed" }; et veulent ajouter Age à elle ? comment puis-je faire cela ?

Autre question : j'ai vu sur certains blogs un type de AnonymousType quel est l'espace de nom pour cette classe ? voici un exemple http://www.codeproject.com/KB/cs/AnonymousTypesInCSharp.aspx

6voto

Justin Niessner Points 144953

Première question - vous ne pouvez pas.

Deuxième question - AnonymousType est le type créé par l'auteur de cet article. Vous devez télécharger les sources de son projet pour utiliser ce type.

0voto

leppie Points 67289

Non, vous ne pouvez pas.

2ème question : Il n'y a rien de tel, cela peut faire référence à une classe générée par le compilateur à laquelle vous n'avez pas accès.

0voto

bua Points 2673

Non, et ce ne serait pas efficace pour votre application. Êtes-vous convaincu que vous ne voulez pas introduire une sorte de classe ?

using System;
class Generic{

   public void doSomething(){}

   private string name;
   private string _othreFeature;

}

Vous pouvez l'étendre avec de nouvelles fonctionnalités, quand vous le souhaitez.

0voto

Joshua Points 1

C'est une question parfaitement logique... Je travaille avec Java et C# et c'est une de mes bêtes noires... En fait, presque tous les langages ont une sorte d'anonyme... PHP, JavaScript, C#, vb (tous), et la liste est longue...

Il s'agit d'une fonctionnalité très utile lorsque l'on jette essentiellement des données dans un objet et que l'on n'a pas besoin d'une classe pour le créer.

En fait, c'est exactement ce que LINQ utilise

var someObject (can be interable/Enumerable) = 
    from p in products
    where p.id == 123
    select new { productid };

blah blah vous voyez l'idée... C'est très utile... :-)

A la vôtre !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X