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 :

La référence non définie à une instance d'objet.


Sujet :

C#

  1. #1
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut La référence non définie à une instance d'objet.
    Bonjour,

    ça fait un bail que j'ai plus fait de C#, mais j'ai décidé de m'y remettre (à votre plus grand malheur )

    J'ai deux classes :
    1. Network
    2. Server


    Un network contient une "List<Server>", première question, est-ce que le type est bien choisi?

    Seconde question, j'ai le code suivant :
    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
            private IList<Network> GetNetworks()
            {
                IList<Network> n = new List<Network>();
     
                Network n0 = new Network("abc");
                Server s = new Server("abc1");
                MessageBox.Show(s.Name);
                n0.Servers.Add(s);
                Server s1 = new Server("abc2");
                n0.Servers.Add(s1);
                n.Add(n0);
     
                Network n1 = new Network("def");
                Server s2 = new Server("def1");
                n1.Servers.Add(s2);
                Server s3 = new Server("def2");
                n1.Servers.Add(s3);
                n.Add(n1);
     
                return n;
            }
    Qui me renvoit un :
    La référence d'objet n'est pas définie à une instance d'un objet.
    Pourtant j'utilise bien new, ça vient de quoi?



    P.S : Server :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
        class Server
        {
            /// <summary>
            /// Variables
            /// </summary>
            string _name;
            string _host;
            string _port;
            string _address;
            string _addressType;
     
            /// <summary>
            /// Minimal constructor
            /// </summary>
            public Server(string name)
            {
                this._name = name;
            }
     
            /// <summary>
            /// Maximal constructor
            /// </summary>
            public Server(string name, string host, string port, string address, string addressType)
            {
                this._name = name;
                this._host = host;
                this._port = port;
                this._address = address;
                this._addressType = addressType;
            }
     
            /// <summary>
            /// Getter / Setter
            /// </summary>
            public string Name
            {
                get { return _name; }
                set { _name = value; }
            }
     
            private string Host
            {
                get { return _host; }
                set { _host = value; }
            }
     
            public string Port
            {
                get { return _port; }
                set { _port = value; }
            }
     
            public string Address
            {
                get { return _address; }
                set { _address = value; }
            }
     
            public string AddressType
            {
              get { return _addressType; }
              set { _addressType = value; }
            }
        }
    Network :
    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
    26
    27
    28
    29
    30
        class Network
        {
            /// <summary>
            /// Variables
            /// </summary>
            private string _name;
            private IList<Server> _servers;
     
            /// <summary>
            /// Constructor
            /// </summary>
            public Network(string name)
            {
                this._name = name;
            }
     
            // Getter / Setter
            public string Name
            {
                get { return _name; }
                set { _name = value; }
            }
     
     
            public IList<Server> Servers
            {
                get { return _servers; }
                set { _servers = value; }
            }
        }

  2. #2
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    Bonjour,

    à vue de nez il manquerait l'initialisation de _servers dans Network
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public Network(string name)
    {
        this._name = name;
        this._servers = new List<Server>();
    }
    En espérant avoir été utile !

  3. #3
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Bon ben t'as un bon nez, c'était aussi simple que ça

    Pour le type de Liste, j'ai bon?


  4. #4
    Membre éclairé Avatar de nsanabi
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Points : 678
    Points
    678
    Par défaut
    Citation Envoyé par Arnaud F. Voir le message
    Un network contient une "List<Server>", première question, est-ce que le type est bien choisi?
    oui, il est bon.

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2007
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 677
    Points : 2 137
    Points
    2 137
    Par défaut
    Je vais être totalement HS mais j’assume (de toute manière ton problème a été résolu). ^^ :
    Si tu codes sous VS, tu as un petit snippet très pratique pour créer tes propriétés (c’est surtout très pratique quand t’en as un grand nombre à écrire), tu commences à taper « prop » et tu appuies deux fois sur « tab », là il va te créer la structure de ta propriété, tu n’auras plus qu’à renseigner le type et le nom de cette dernière.

    Tu vas te retrouver avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public int MyProperty { get; set; }
    qui est fait exactement la même chose que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private int _myProperty;
    public int MyProperty
    {
         get { return _myProperty; }
         set { _myProperty= value; }
    }

    (tu as le « propg » qui fait la même chose mais avec le « set » en private).

  6. #6
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    C'est noté :

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/01/2013, 13h11
  2. Réponses: 4
    Dernier message: 14/04/2010, 09h47
  3. La référence d'objet n'est pas définie à une instance d'objet
    Par Delphi-ne dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/07/2009, 15h22
  4. Réponses: 16
    Dernier message: 30/10/2008, 19h33
  5. Réponses: 20
    Dernier message: 13/08/2007, 17h11

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