Witam to będzie moje pierwsze zapytanie na forum, jestem nowy w programowaniu i aktualnie mam wrażenie że błądzę po omacku zmieniając kod aby zadziałał (tak ćwiczę i czytam brakuje mi tylko właśnie praktyki zadań)hah.
Ogólną myślą jest to aby Program stworzył jedna listę do której podczas tworzenia każdego następnego pracownika(obiektu) będzie wpisywał go z automatu bez ingerencji użytkownika. I tu pojawił się problem gdyż program zamiast wpisać użytkownika tworzy chyba 1600 obiektów po czym konsola wyrzuca błąd stack overflow. Aktualnie w zależności jak z edytuje kod wyświetla mi błąd też w visual w konstruktorze lub metodzie tablica.
Pytanko jak to zatrzymać albo ograniczyć to do jednego wpisanego obiektu.
Kod wcześniej działał mi jak tworzyłem listę z każdym następnym pracownikiem i dopisywałem go do 1, ale jaki jest sens tworzenia pustych list zawalających pamięć.
using System;
using System.Collections.Generic;
using static System.Collections.IEnumerable;
using System.IO;
using System.Security.Cryptography.X509Certificates;
using System.Text;
namespace zaj2
{
internal class Pracownik
{
string imie, nazwisko;
int stawka, gpracy;
static List<Pracownik> Pracownicy = new List<Pracownik>();
public Pracownik(string imie, string nazwisko, int stawka, int gpracy)
{
this.imie = imie;
this.nazwisko = nazwisko;
this.stawka = stawka;
this.gpracy = gpracy;
tablica (imie,nazwisko,stawka,gpracy);
}
static void tablica(string a,string b, int c ,int d)
{
Pracownicy.Add(new Pracownik(a, b, c, d));
Console.ReadLine();
}
public static void tab()
{
foreach (Pracownik x in Pracownicy)
{
Console.WriteLine(x.imie + " " + x.nazwisko + " " + x.stawka + " " + x.gpracy);
}
}
public void wyswietl()
{
Console.Write(imie);
Console.Write(" "+nazwisko);
Console.Write(" "+stawka);
Console.Write(" " + gpracy +"\n");
}
public void modyfikuj_imie()
{
imie = Console.ReadLine();
}
}
}
using System;
using System.Collections.Generic;
namespace zaj2
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Pracownik p1 = new Pracownik("fra", "wiko", 20, 30);
Pracownik p2 = new Pracownik("war", "mar", 56,82);
p1.wyswietl();
Pracownik.tab();
}
}
}
Jeśli coś źle robie to przepraszam z góry, wciąż kuje ten materiał.