0

intentaba hacer un codigo para la siguiente problema:

Una empresa grande paga a sus vendedores mediante comiciones. Los vendedores reciben $200 por semana, mas el 9% de sus ventas brutas en esa semana.Por ejemplo, un vendedor que vende $5000 de mercancias en 1 semana reciebe $200 mas el 9% de $5000, es decir recibe un total de $650. hacer una aplicacion que reciba como entrada los articulos vendidos por el vendedor durante la ultima semana, y que calcule y muestre los ingresos de ese vendedor. No hay limite en cuanto al numero de articulos que un vendedor puede vender.

Para ello cree tres entidades:

Producto

using System;

namespace Proyecto.Entidades
{
    class Producto
    {
    public int Precio { get; set; }
    }
}

Vendedor

using System;

namespace Proyecto.Entidades
{
    class Vendedor
    {
     public string Nombre { get; set; }
     public double Sueldo { get; set; } = 200;
    }
}

Venta

using System;
using System.Collections.Generic;

namespace Proyecto.Entidades
{
    class Venta{
        public  Vendedor  Vendedor { get; set; } 

        public List<double> Productos{get; set;}

        public Venta(string NombreVende, List<double> Productos){
            Vendedor.Nombre = NombreVende;
            this.Productos= Productos;
        }
    }
}

Main

using System;
using System.Collections.Generic;
using Proyecto.Entidades;
namespace Proyecto
{
    class Program
    {
        public static void Main(string[] args)
        {
            var pproducto = new List<double>();
            int i = 1;

            Console.WriteLine("Digiete el nombre del vendedor: ");
            string nombre = Console.ReadLine();


            Console.WriteLine($"Digiete el valor del producto #{i} vendido por {nombre} : ");
            double producto= int.Parse(Console.ReadLine());
            pproducto.Add(producto);
            var item = pproducto[pproducto.Count - 1];
            while (item != 0)
            {    i++;
                Console.WriteLine($"Digiete el valor del producto #{i} vendido por {nombre} : ");
                pproducto.Add(int.Parse(Console.ReadLine()));
                item = pproducto[pproducto.Count - 1];

            }
            var venta = new Venta(nombre, pproducto);

            foreach (var precio in venta.Productos)
            {
                venta.Vendedor.Sueldo += precio * 0.9;
            }
            Console.WriteLine($"{venta.Vendedor.Nombre} tuve un sueldo de: {venta.Vendedor.Sueldo}");
        }
    }
}

Haciendo el clasico Dotnet build aparece que no tengo ningun error, sin embargo a la correr el proyecto me sale el siguien error:

Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object. at Proyecto.Entidades.Venta..ctor(String NombreVende, List`1 Productos) in C:\Users\Sebastian\Desktop\Mis cositas\Digital School\Documentacion\Proyecto\Entidades\Venta.cs:line 12 <- esta linea hace referencia al Vendedor.Nombre = NombreVend el cual paso por parameto en el constructor de la calse Venta

at Proyecto.Program.Main(String[] args) in C:\Users\Sebastian\Desktop\Mis cositas\Digital School\Documentacion\Proyecto\Program.cs:line 28 <- esta linea hace referencia donde instancio el objeto venta de la clase Venta

PD: está es la primera vez que formulo una pregunta en el stackoverflow si hago algo mal o que pueda estar mejor, les pedire el favor de hacermelo saber, gracias. :)

Diasemon
  • 1
  • 1
  • 4
    Como verás, he cerrado tu pregunta como duplicada de una genérica sobre `NullReferenceException`. Prácticamente todos los errores con esa excepción se resuelven siguiendo los pasos de esa respuesta. En tu caso, el error te indica que está en `Vendedor.Nombre = NombreVend;` ,asi que algo ahi es null. Piensa si puede ser `Vendedor`, `Vendedor.Nombre` o `NombreVend`. – Pikoh Dec 03 '19 at 12:33
  • 2
    Me permito añadir dos cosas. Es muy mala idea que el nombre de la propiedad coincida con el de la clase (`public Vendedor Vendedor`). Lo segundo es darte la bienvenida a [es.so], algo que olvidé en mi anterior comentario :) – Pikoh Dec 03 '19 at 12:34

0 Answers0