Wo Objekt erzeugen?



  • ich habe mehrere comports. für jeden dieser ports möchte ich ein objekt zur laufzeit erzeugen(die anzahl wird zur laufzeit ermittelt, hier habe ich sie zum testen gleich 3 gesetzt). wo sollte ich das besser tun, hier:

    public Form1()
    {
        InitializeComponent();
        ports = new SerialPort[3];
    }
    

    oder hier:

    private void Form1_Load(object sender, EventArgs e)
    {
        ports = new SerialPort[3];
    }
    

    ?

    zum testen hab ich mal son objekt mit der toolbox erzeugt und in der datei Form1.Designer.cs diese syntax gefunden:

    this.serialPort1 = new System.IO.Ports.SerialPort(this.components);
    

    warum wird das objekt mit this.components initialisiert? muss/sollte ich das auch machen?



  • Das mit den "this.components" musst du nicht machen, das ist dem designer seine sache, lass da lieber die finger von 🙂
    Ansonsten würde ich das Array erst dann initialisieren wenn du es wirklich benötigst.



  • ok, die comports sollen gleich beim programmstart gescannt und es soll eine auflistung aller gefundenen ports in einem richedit fenster in textform angezeigt werden.
    bin mir halt nicht sicher, ob das richedit schon innerhalb des kostruktors bereit ist.



  • Nach dem "InitializeComponents" durchgelaufen ist, sind alle Componenten verfügbar und nutzbar, also alles was nach diesem Funktionsaufruf kommt, greift auf valide Components zu.


Log in to reply