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

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 233
    Points : 92
    Points
    92
    Par défaut Erreur: an object reference is required for the non-static field, method or property 'BankModel.BankCxt.get'
    Bonjour,

    Je reviens vers vous car j'ai une erreur que je ne sais pas résoudre...

    J'ai crée des objets que cherche à stocker dans une liste. Voila le code de ma classe où j'ai crée les listes:

    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
    public class BankContext
        {
            public List<Saving> Savings { get; set; }       //création de la liste pour stocker les comptes épargne crées
            public List<Daily> Dailys { get; set; }            
            public List<Web> Webs { get; set; }
            public List<Youth> Youths { get; set; }
            public List<CreditCard> CreditCards { get; set; }
            public List<Client> Clients { get; set; }         
            public List<Banker> Bankers { get; set; }         
     
            public BankContext()
            {
                Savings = new List<Saving>();
                Dailys = new List<Daily>();
                Webs = new List<Web>();
                Youths = new List<Youth>();
                Clients = new List<Client>();
                Bankers = new List<Banker>();
            }
        }
    et voilà le code où je cherche à add mes objets à mes listes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CreditCard creditCard1 = new CreditCard(123456789, 1212, daily1);
                CreditCard creditCard2 = new CreditCard(789456133, 4545, daily2);
                CreditCard creditCard3 = new CreditCard(456513256, 7878, daily3);
     
     
    BankContext.CreditCards.Add(creditCard1);
                BankContext.CreditCards.Add(creditCard2);
                BankContext.CreditCards.Add(creditCard3);
    Visual Studio détecte l'erreur suivante:
    an object reference is required for the non-static field, method or property 'BankModel.BankCxt.get'
    Comment puis-je mettre une object reference et où?

    Merci d'avance!

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Points : 560
    Points
    560
    Par défaut
    C'est logique, à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BankContext.CreditCards.Add(creditCard1);
    Tu accède à la propriété CreditCards via la classe, cette propriété doit donc être statique.

    Mais tu as une autre possibilité, c'est de laisser ta classe BankContext telle quelle et utiliser un objet de ta classe.

    Tout cela dépend de la conception de la classe, de son utilité dans ton projet etc ...

    Voici donc les 2 possibilités que tu peux avoir :

    Propriétés statiques :

    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
     
     public class BankContext
            {
                private static List<Saving> _savings = new List<Saving>();
                public static List<Saving> Savings
                {
                    get { return _savings; }
                    set { _savings = value; }
                }
     
                private static List<Daily> _dailys = new List<Daily>();
                public static List<Daily> Dailys
                {
                    get { return _dailys; }
                    set { _dailys = value; }
                }
     
                private static List<Web> _webs = new List<Web>();
                public static List<Web> Webs
                {
                    get { return _webs; }
                    set { _webs = value; }
                }
     
                private static List<Youth> _youth = new List<Youth>();
                public static List<Youth> Youths
                {
                    get { return _youth; }
                    set { _youth = value; }
                }
     
                private static List<CreditCard> _creditCards = new List<CreditCard>();
                public static List<CreditCard> CreditCards
                {
                    get { return _creditCards; }
                    set { _creditCards = value; }
                }
     
                private static List<Client> _clients = new List<Client>();
                public static List<Client> Clients
                {
                    get { return _clients; }
                    set { _clients = value; }
                }
     
                private static List<Banker> _bankers = new List<Banker>();
                public static List<Banker> Bankers
                {
                    get { return _bankers; }
                    set { _bankers = value; }
                }
     
     
                public BankContext()
                {
     
                }
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                CreditCard creditCard1 = new CreditCard(123456789, 1212, daily1);
                CreditCard creditCard2 = new CreditCard(789456133, 4545, daily2);
                CreditCard creditCard3 = new CreditCard(456513256, 7878, daily3);
     
     
                BankContext.CreditCards.Add(creditCard1);
                BankContext.CreditCards.Add(creditCard2);
                BankContext.CreditCards.Add(creditCard3);
    Objet de ta classe :

    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
     
     public class BankContext
            {
                public List<Saving> Savings { get; set; }       //création de la liste pour stocker les comptes épargne crées
                public List<Daily> Dailys { get; set; }
                public List<Web> Webs { get; set; }
                public List<Youth> Youths { get; set; }
                public List<CreditCard> CreditCards { get; set; }
                public List<Client> Clients { get; set; }
                public List<Banker> Bankers { get; set; }
     
                public BankContext()
                {
                    Savings = new List<Saving>();
                    Dailys = new List<Daily>();
                    Webs = new List<Web>();
                    Youths = new List<Youth>();
                    Clients = new List<Client>();
                    Bankers = new List<Banker>();
                }
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
                CreditCard creditCard1 = new CreditCard(123456789, 1212, daily1);
                CreditCard creditCard2 = new CreditCard(789456133, 4545, daily2);
                CreditCard creditCard3 = new CreditCard(456513256, 7878, daily3);
     
                BankContext context = new BankContext();
                context.CreditCards.Add(creditCard1);
                context.CreditCards.Add(creditCard2);
                context.CreditCards.Add(creditCard3);
    Si tu ne vois pas la différence entre les 2, je te conseille de t'informer sur le terme static en POO.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 233
    Points : 92
    Points
    92
    Par défaut
    Ok! Merci je me renseigne

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 13/06/2014, 21h56
  2. Erreur "static reference to the non-static field"
    Par NetLandGim dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 04/04/2011, 00h55
  3. Réponses: 2
    Dernier message: 31/01/2008, 11h58
  4. Réponses: 1
    Dernier message: 26/07/2007, 17h29
  5. [C#][debutant]erreur => object reference is required for a no
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/01/2006, 13h47

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