Avatar billede Henrik_B Novice
10. april 2025 - 19:47 Der er 3 kommentarer

Vejledning i god opbygning af program, erklæring af lister og modeller.

Jeg har et par grundlæggende spørgsmål omkring data og lister af data. Jeg leder efter vejledning i hvor jeg erklærer mine variable, og hvordan jeg loader mine lister smartest.

Jeg benytter C# i Visual Studio Community 2022. Jeg forsøger at opbygge tingene efter samme opskrift som beskrevet af Tim Corey (Youtube).

Jeg har et par lister i mit program. De er af en kompleks type, som jeg læser ind fra hver sin tekst-fil. Jeg kan godt lave modeller til hver type, jeg kan også godt lave en liste med typerne, og fylde dem op. Spørgsmålet er bare om jeg kan gøre det smartere.

I mit hovedprogram har jeg min main-procedure og mine lister erklæret.

public partial class MainForm : Form
{
  public static List<ForsteModel> ForsteListe = new();
  public MainForm()
  {
      InitializeComponent();
      loadForste(Path);
  }
}

Jeg vil gerne lave en funktion, der kan erstatte new() på listen. Altså noget a'la

public static List<ForsteModel> ForsteListe = LoadForste(Path);

Mine spørgsmål er :

1. Er det det rigtige sted at erklære mine lister ? Altså i main proceduren ?
2. Hvordan (og hvor) vil en professionel lave en loadfunktion til en liste ? I main, i et ListLibrary, eller sammen med objektet i ModelLibrary ?
3. Tim Corey siger at alle modeller skal ligge i et ModelLibrary. Skal alle load-af-lister så ligge i et ListLibrary ?

M.v.h. Cobol-programmøren
Avatar billede arne_v Ekspert
10. april 2025 - 21:28 #1
Der er forskellige måder at gøre noget sådant på.

Men jeg tænker noget a la:


namespace Model
{
    public class Noget
    {
        ...
    }
    ...
}


namespace DataAccess
{
    public class DataLoader
    {
        public List<Noget> loadNoget()
        {
            ...
        }
        ...
    }
    ...
}


public class Application
{
    private List<Noget> noget;
    public Application()
    {
        DataLoader loader = new DataLoader();
        noget = loader.loadNoget();
        ...
    }
    public void Run()
    {
      ...
    }
    ...
}
public class Program
{
    public static void Main(string[] args)
    {
        Application app = new Application();
        app.Run();
    }
}
Avatar billede arne_v Ekspert
Skrevet i går kl. 19:09 #2
Avatar billede Jordegern Seniormester
Skrevet i dag kl. 12:28 #3
Jeg har en kommentar til dit spørgsmål.
Jeg skriver frit fra leveren.

Du spørger om det kan gøres smartere.
Lige meget hvad man taster og hvor lang tid man bruger på det, kan det altid gøres smartere.
Hvis du har tastet noget der virker, så brug det.

Så spørger du om det rigtige sted at loade listerne.
Det rigtige sted er hurtigst muligt.
Så er tingene klar, når de skal bruges.

Hvis jeg skal komme med et uopfordret godt råd, så bliv færdig, og så videre ud over stepperne.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester