• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Błąd stack overflow

0 głosów
263 wizyt
pytanie zadane 15 marca 2023 w C# przez Whyyy Nowicjusz (240 p.)
zamknięte 16 marca 2023 przez Whyyy

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ł.

komentarz zamknięcia: Problem rozwiązany

1 odpowiedź

+3 głosów
odpowiedź 15 marca 2023 przez PH03NIX Mądrala (6,130 p.)
edycja 16 marca 2023 przez PH03NIX
 
Najlepsza
Tworzysz pracownika, który w konstruktorze wywołuje funkcję o nazwie tablica, funkcja tablica dodaje pracownika, który w konstruktorze wywołuje funkcję tablica - i tak w "nieskończonej" pętli (do czasu aż przepełni stos).
komentarz 15 marca 2023 przez Whyyy Nowicjusz (240 p.)
Ooooooo Nie zauważyłem na Microsofcie mieli jakoś tak i działało im.

Ale stworzyłem nową klasę data podmieniłem na Pracownicy.Add(new data(a,b,c,d)); i działa.
Dzięki za pomoc.

Podobne pytania

+4 głosów
2 odpowiedzi 830 wizyt
pytanie zadane 1 kwietnia 2018 w Offtop przez jeremus Maniak (59,720 p.)
0 głosów
2 odpowiedzi 735 wizyt
pytanie zadane 7 września 2019 w C i C++ przez Teslum_369 Gaduła (4,190 p.)
0 głosów
1 odpowiedź 181 wizyt
pytanie zadane 16 września 2018 w HTML i CSS przez Przemek Zembrzuski Gaduła (3,240 p.)

93,424 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...