2010-11-27 5 views
0

J'ai créé les éléments suivants dans ma classeC# créer la liste dans les propriétés de la classe

private List<CreditCardTransaction> _ccTransactions = new List<CreditCardTransaction>(); 

    public List<CreditCardTransaction> ccTransactions 
    { 
     get { return _ccTransactions; } 
     set { _ccTransactions = value; } 
    } 

Dans une autre fonction publique (dans la même classe), je tenté d'ajouter une valeur à la liste en utilisant le code suivant:

_ccTransactions.Add(new CreditCardTransaction(Convert.ToString(items[0]), Convert.ToString(items[1]), Convert.ToDouble(items[2]), DateTime.Parse(items[3]))); 

Cependant, une ligne ondulée rouge sous « _ccTransactions » dit

erreur 1 une référence d'objet est requis pour le champ non statique, la méthode ou la propriété « CreditCardTransactionKeeper.Cr editCardTransaction._ccTransactions '

Quelle est la manière correcte pour moi d'ajouter un nouvel élément à la liste quand je suis dans une méthode de la classe qui a défini cette liste?

+0

@Philip Rieck a absolument raison. Est-il logique, cependant, pourquoi une méthode statique ne peut pas accéder à une variable d'instance? –

+0

@Esteban Araya: Oui, c'est logique. Une méthode statique appartient à la classe entière, pas à une instance particulière de celle-ci, donc puisqu'il n'y a pas d'instance accessible aussi loin que la méthode statique, il ne peut y avoir de variables d'instance. –

+0

@Anna Lear: Je suppose que Esteban demandait l'affiche originale. C'est lui qui devrait comprendre la logique derrière le comportement afin d'avoir une réponse vraiment complète. –

Répondre

7

Vous ne pouvez pas accéder au champ non-statique (_ccTransactions) à l'intérieur d'une fonction statique - par l'erreur, je suppose que votre autre fonction est statique.

Vous devez soit rendre _ccTransactions statique, rendre votre fonction d'appel non statique, ou obtenir une référence à un objet de cette classe pour accéder à _ccTransactions à partir de.

+0

Merci pour votre réponse, j'ai ajouté le mot-clé statique devant la déclaration et cela a fait l'affaire. –

Questions connexes