taharban
Messages postés56Date d'inscriptionlundi 7 juillet 2003StatutMembreDernière intervention14 novembre 2007
-
13 nov. 2007 à 15:53
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 2008
-
14 nov. 2007 à 10:31
Bonjour,
j'ai un problème d'organisation de mon code :
class DeBase{ public DeBase() {} public void Categorie1_Method1(...){...} ... public void CategorieN_MethodN(...){...}} Et ensuite :
Main(){ DeBase deBase = new DeBase(); deBase.Categorie1 _
Method1(...); }
Mon problème est que j'ai potentiellement une centaine de fonctions dans quelques catégories et qu'au final c'est fouillis.
J'aimerais appeler mes fonctions comme suit :
Main() { DeBase deBase = new DeBase();
deBase.Categorie1.Method1(...);
}
Je n'arrive pas à trouver comment avoir à la fois une séparation de type namespace ou classe imbriquée et en même temps conserver le contexte d'exécution de l'instanciation de ma classe de base.
taharban
Messages postés56Date d'inscriptionlundi 7 juillet 2003StatutMembreDernière intervention14 novembre 2007 14 nov. 2007 à 10:26
C'est effectivement le cas (presque), le code que j'ai fourni est volontairement simplifié.
Le code est organisé comme suit :
// Fichier DeBase.cs
public partial class DeBase
{
public DeBase(){}
private clsCategorie1 _clsCategorie1;
public clsCategorie1 Categorie1
{
get
{
if(_clsCategorie1 == null)
_clsCategorie1 = new clsCategorie1(this);
return _clsCategorie1;
}
}
public partial class clsCategorie1
{
private DeBase _DeBase;
public clsCategorie1(DeBase oda)
{
_DeBase = oda;
}
}
// Dossier ./Categorie1 - Fichier categorie1Method1
public partial class DeBase
{
public partial class clsCategorie1
{
public void Method1(...)
{
}
}
}
Cette séparation te semble plus correcte ?
Sachant que les catégories sont définies à l'avance et les méthodes générées automatiquement.
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 200813 14 nov. 2007 à 10:31
Pas tout a fait, moi j'aurai fait plus comme ça:
// Dans DeBase.cs :
public class DeBase
{
private Categorie1 categorie1;
[...]
}
// Dans Categorie1.cs
public class Categorie1
{
}
Un des avantages de faire comme ça (outre le fait que tu ne mélanges pas des choses différentes dans un même source) c'est que si tu veux réutiliser Categorie1 ailleurs, tu n'a pas a passer par DeBase juste pour ça.
(cela dit, toutes ces solutions sont correctes)
<hr size="2" width="100%" />
Working as designed
www.nikoui.fr