De générer automatiquement les classes c#
Souvent, je trouve que je suis en train d'écrire une classe similaire à la suivante (mais avec un nombre variable de membres, types de membres, etc). Est-il possible de faire cela automatiquement, facilement et gratuitement?
Donc, je tiens à fournir les paramètres "Foo", "int", "pommes", "bool", "banane", "Bar", et "clémentine" et avoir le reste du code généré pour moi.
public class Foo
{
public Foo(int apples, bool banana, Bar clementine)
{
m_Apples = apples;
m_Banana = banana;
m_Clementine = clementine;
}
public int Apples
{
get { return m_Apples; }
set { m_Apples = value; }
}
public bool Banana
{
get { return m_Banana; }
set { m_Banana = value; }
}
public Bar Clementine
{
get { return m_Clementine; }
set { m_Clementine = value; }
}
private int m_Apples;
private bool m_Banana;
private Bar m_Clementine;
}
OriginalL'auteur Tim Gradwell | 2009-05-14
Vous devez vous connecter pour publier un commentaire.
Si vous mettez à niveau vers C# 3.5, vous pouvez réduire le montant de l'écriture que vous devez faire.
Par exemple, vous pourriez faire ceci:
Ou, vous pourriez quand même avoir le constructeur, mais vous n'avez pas à ajouter tous les champs privés. C'est assez rapide à taper et plus rapide avec le code snippits ou resharper. Un inconvénient est que de cette façon, vous ne pouvez pas valider votre entrée de paramètre sans plus de code. Ça dépend sur qui va le consommer vos classes et combien il est important que int Pommes est définie explicitement plutôt que de seulement 0.
OriginalL'auteur D. Patrick
Prendre un coup d'oeil à T4 Moteur. Il est inclus avec VS2005 partir.
OriginalL'auteur Mehrdad Afshari
Vous pouvez également utiliser le C# fragments qui rendent le processus de création de code très facile, comme prop, ctor, propdp, ina. De toute façon, voici une liste, ce qui pourrait aider.
C# Extraits
Eh bien, si vous êtes à l'aide de C# 2.0, l'hélice extrait de l'ajout de la propriété et de ses membres, quelque chose comme: private string _member; public string Membre { get { return _member; } set { _member = valeur; } }
Vous pouvez avoir un nombre variable de membres à l'aide d'un extrait d'un nombre variable de fois.
OriginalL'auteur Carlo
Cela peut être fait avec des classes de Système.CodeDom. Consultez l'aide pour CodeDomProvider pour un exemple. Je l'ai utilisé pour créer un gérés enum avec l'attribut flags basé sur un IDL enum définies dans une bibliothèque de type.
OriginalL'auteur Arnshea
Vous pouvez utiliser Automatique Propriétés:
qui permettrait au moins de vous sauver un peu de temps.
Aussi, vous devriez acheter resharper - je sais que vous avez dit libre, mais il est fondamentalement libre une fois que vous vous rendez compte combien de temps il vous sauve.
OriginalL'auteur Derek Ekins
Le XSD outil peut faire pour vous. Il suffit d'écrire un schéma représentant de votre objet, et XSD va générer les classes correspondantes.
OriginalL'auteur Ben Collins
Pour l'exemple que vous fournissez, le suivant serait fonctionnellement équivalent:
Il est difficile de proposer une meilleure alternative sans savoir ce que le problème que vous cherchez à résoudre. Quels types d'objets sont-ils? Les Messages? D'exécution des représentations de fichiers de données?
Vous souhaitez peut-être envisager d'autres représentations comme les tuples ou raw tableaux.
OriginalL'auteur Katelyn Gadd