public List<OrderItem> lstOrderitem{ get; private set; } public int NumberOfProducts { get; private set; } public decimal BasketTotal { get; private set; } public ShoppingBasket() { //List<OrderItem> lstOrderitem = new List<OrderItem>(); } public void AddProduct(string name, decimal price, int quantity) { lstOrderitem.Add(new OrderItem(name, price, quantity)); }
3 Réponses :
Vous devez initialiser edit fort> p> lstorderitem code> dans le constructeur, comme celui-ci:
Le "lstorderitem est une propriété désolé d'avoir dû inclure cette partie. Édité le Pop pour montrer ceci
@Taelmit: Même s'il s'agit d'une propriété code> auto code>, vous devez l'initialiser, comme une réponse fournie et que vous l'avez fait.
Pourquoi le compilateur ne se plaint pas lorsque nous essayons d'utiliser une propriété d'instance qui n'a pas été initialisée?
@Jayjay Parce que le compilateur initialise implicitement les propriétés d'instance, en veillant à ce qu'il n'existe pas de propriété d'instance qui n'a pas été initialisée.
On dirait que vous n'avez pas initialisé votre référence lstorderitem code>. Déboguer votre code si votre valeur de référence est
null code>, vous devez initialiser
lstorderitem code> avant de l'utiliser. P>
Le "lstorderitem est une propriété désolé d'avoir dû inclure cette partie. Édité le Pop pour montrer ceci
On dirait que vous n'avez pas initialisé votre référence lstorderitem em>. Déboguer votre code si votre valeur de référence est public MyClass() {
lstOrderitem = new List<OrderItem>();
}
Utilisez le débogueur, cela devrait vous aider à l'avenir.
// list lstorderitem = nouvelle liste (); code> était presque correct: vous devriez supprimer
// list code> partie pour en faire une initialisation de une propriété membre plutôt qu'une déclaration locale.
Ahh ok malade essayer tout cela et revenir à vous merci de m'aider.