IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Affecter un objet à un autre. [Débutant]


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 34
    Par défaut Affecter un objet à un autre.
    Bonjour,
    je crée une application console en C#.

    Ma solution est composé de plusieurs projets :
    -Domaine (dll).
    -Services (dll).
    -Application console Windows.

    Dans mon Domaine, je dispose de différentes classes :
    -TypeVille (public enum)
    -Ville (public class)
    -Roi(public class)

    TypeVille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public enum TypeVille
    {
    	Capital,
    	Bourg,
    	Royaume
    }
    Ville :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public class Ville
    {
    	private string mID;
    	public string ID
    	{
    		get{return this.mID;}
    		set{this.mID = value;}
    	}
     
     
    	private string mNom
    	public string Nom
    	{
    		get{return this.mNom;}
    		set{this.mNom = value;}
    	}
     
    	private TypeVille mType;
    	public TypeVille Type
    	{
    		get{return this.mType}
    		set{this.mType = value;}
    	}
     
    }
    Roi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public class Roi
    {
            private string mNom;
            public string Nom
            {
                get { return this.mNom; }
                set { this.mNom = value; }
            }
     
    	private List<Ville> mVilles;
    	public List<Structures> Villes
    	{
    		get{return this.mVilles;}
    		set{this.mVilles = value;}
    	}	
    }
    Dans mon Service, je dispose d'une méthode créant une ville ; CreateCity.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class CreateService
    {
    	public Ville CreateVille(string id, string nom, TypeVille type)
    		{
    			Ville myCity = new Ville(id, nom, type);
    			return myCity;
    		}
    }
    Ainsi qu'une méthode créant un Roi ; CreateKing
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Roi CreateKing(string nom, List<Villes> villes)
    {
    	Roi myking = new Roi(nom, villes)
    	return myking;
    }
    Dans mon application console, je souhaite affecter les villes au Roi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    static void Main(string[] args)
    {
    	CreateCity mySmallCity = new CreateCity();
    	mySmallCity.CreateCity("001", "SmallCity", TypeVille.Bourg);
     
    	CreateCity myKingdom = new CreateCity();
    	myKingdom.CreateCity("100", "Kingdom", TypeVille.Royaume);
     
    	CreateKing ArthurKing = new CreateKing();
    	ArthurKing.CreateKing("Arthur", null)	
    }
    Le problème se trouve lors de la création de mon Roi, comment faire pour lui affecter son royaume créé juste au dessus ?
    Actuellement je met "null" pour continuer mon code. Mais j'aimerais que mon Roi dispose de son royaume.

    Sans cela je suis bloqué plus loin dans mon code.

    J'éspère que c'est assez complet pour vous permettre de m'aider.

    Merci d'avance !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Question bête : un royaume est une liste de villes et une ville ?

    Sinon tu bloques uniquement à savoir comment passer ta liste de villes alors c'est simple :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CreateCity mySmallCity = new CreateCity();
    Ville smallCity = mySmallCity.CreateCity("001", "SmallCity", TypeVille.Bourg);
     
    CreateCity myKingdom = new CreateCity();
    Ville kingdom = myKingdom.CreateCity("100", "Kingdom", TypeVille.Royaume);
     
    List<Ville> villes = new List<Ville> { smallCity, kingdom };
     
    CreateKing ArthurKing = new CreateKing();
    ArthurKing.CreateKing("Arthur", villes)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 34
    Par défaut
    Résolu !

    Oui, je parle au sens géographique du terme, dans mon contexte cela à un sens particulier.

    Merci encore pour tout !

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Par défaut
    Salut,
    pourquoi ne pas ajouter à ton roi une propriété Royaume ?
    et lui passer dans le constructeur genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public Roi CreateKing(string nom, List<Villes> villes, Royaume monRoyaume)
    {...}
     
     
    public class Roi
    {
         public Roi(string nom, List<Villes> villes, Royaume monRoyaume)
         {...}
    }

    personnellement (mais c'est juste mon avis hein...) j'aurais plutôt créé une classe Royaume qui aurait contenu les villes et aurais juste assigné le Royaume au Roi ou, inversement, le Royaume contiendrait le Roi.
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Royaume _monRoyaume;
     
    public Roi(string nom, Royaume monRoyaume)
    {
    _monRoyaume = monRoyaume;
    ...}
     
    public List<Structures> Villes
    	{
    		get{return _monRoyaume.Villes;}
    		set{_monRoyaume.Villes = value;}
    	}
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public class Royaume
    {
    Roi _monRoi;
    List<Ville> _villes;
     
    public Royaume(Roi monRoi, List<Ville> Villes)
    {
    _villes = Villes;
    _monRoi = monRoi;
    }
     
    public List<Ville> Villes
    {...}
     
    public Roi Roi
    {...}

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 34
    Par défaut
    C'est un peu plus complexe dans mon contexte.
    Un royaume en tant de guerre est partagé entre deux rois.

    Merci de donner ton avis, mais j'ai réduit le code au strict nécessaire pour débloquer mon sujet.

    Encore merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affecter une valeur d'attribut d'un objet à un autre
    Par wafiwafi dans le forum Général Java
    Réponses: 9
    Dernier message: 19/08/2011, 12h38
  2. [POO] affecter un objet de type file à un autre
    Par slash_X dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/02/2009, 11h06
  3. Affecter une variable objet à une autre variable objet
    Par CyberMen dans le forum VBA Access
    Réponses: 11
    Dernier message: 30/09/2008, 02h08
  4. Affecter un recordset à un autre ?
    Par _developpeur_ dans le forum Access
    Réponses: 2
    Dernier message: 22/10/2005, 11h22
  5. Réponses: 2
    Dernier message: 30/10/2003, 00h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo