Permalänk
Medlem

C# programmering 1 List

Hej håller på att göra en bilfirma i min kurs programmering 1.
Försöker nu få till en lista som jag vill ska spara och skriva ut ALLA kunder som användaren matar in, problemet är att jag får bara utmatning på dom användare jag matat in just när jag går in i det menyvalet. Återgår jag till huvudmenyn och går tillbaka för att mata in en till användare så skrivs inte föregående ut?
Provat kolla olika introduktioner på youtube och läsa på Microsofts sida om List<T>

using System; using System.Collections.Generic; namespace Uppdrag2._2 { class Program { static void Main(string[] args) { bool showMenu = true; while (showMenu) { showMenu = MainMenu(); } } public static bool MainMenu() { //Lista för sparandet av kunder List<Kund> kunder = new List<Kund>(); //Lista för bilar List<Bil> bilar = new List<Bil>(); //Meny urval Console.WriteLine("Välkommen till Bilfirman"); Console.WriteLine("\t[1] Registrera Kund"); Console.WriteLine("\t[2] Köpa eller sälja bil"); Console.WriteLine("\t[3] Garantiärenden"); Console.WriteLine("\t[4] Reparationer"); Console.WriteLine("\t[5] Service"); Console.WriteLine("\t[6] Personal"); Console.WriteLine("\t[7] Avsluta"); Console.Write("\r\nVälj ett alternativ: "); int v = int.Parse(Console.ReadLine()); int menyVal = v; switch (menyVal) { //Kund registrering case 1: { Console.WriteLine("Skriv namnet på den kund du vill lägga till."); string kundNamn = Console.ReadLine(); Kund kund = new Kund(kundNamn); kunder.Add(kund); } Console.WriteLine("\nNamn på tillagda kunder:"); foreach(Kund kundNamn in kunder) { Console.WriteLine(kundNamn.Namn); } Console.ReadKey(); return true;

Här är min andra class jag använder till min lista för att spara och hämta namnen

public class Kund { private string kundNamn; public Kund(string Namn) { this.Namn = Namn; } public string Namn { get; set; } } }

Visa signatur

Gainward 6800 GT 256 mb AGP, AMD Athlon XP 2800+ och 1024 mb RAM

Permalänk
Medlem

Listan kunder är lokal för funktionen MainMenu. Lämnar du MainMenu och går in i den igen instansieras en ny lista.

Visa signatur

Bra, snabbt, billigt; välj två.

Ljud
PC → ODAC/O2 → Sennheiser HD650/Ultrasone PRO 900/...
PC → S.M.S.L SA300 → Bowers & Wilkins 607

Permalänk
Medlem

Svaret ligger i: Vad är det första två sakerna du gör i MainMenu()? Om du tänker dig att du kör MainMenu() en gång, sedan vad händer andra gången du kör MainMenu()?

Detta är delvis ett klassiskt scope-problem.

Permalänk
Medlem

Okej så om jag skriver min List och sparandet av kunder utanför menyn så borde kommer inte menyn rensa bort dom?

Visa signatur

Gainward 6800 GT 256 mb AGP, AMD Athlon XP 2800+ och 1024 mb RAM

Permalänk

Du kan spara saker i en lista i en funktion, men hur du skickar listan till funktionen spelar roll. Blir det en kopia eller är det med en referens så orginal listan ändras. Utforska detta!

edit: Du kan även skicka en kopia och skicka tillbaka den modifierade listan. Vilket du väljer spelar såklart roll men lite tidigt gå in på detaljer, testa vad du gillar.

Visa signatur

[5900x][MSI-B550-Tomahawk][RTX-3700][32GBRam3200CL14]