Mein Problem ist ziemlich einfach, aber ich weiß nicht, wie man es löst.C# - Erstellen von Instanzen
Mein Code funktioniert, wenn ich bereits bestimmt, wie viele Drohnen erstellt werden.
INICIO
public partial class Inicio : Form
{
private Drone d1,d2;
private Arena arena;
public Inicio()
{
InitializeComponent();
}
private void btnconetar_Click(object sender, EventArgs e)
{
d1 = new Drone("192.168.1.10");
d2 = new Drone("192.168.1.20");
arena = new Arena(d1,d2);
arena.Show();
this.Hide();
}
}
Arena:
public partial class Arena : Form
{
private Drone d1, d2;
public Arena(Drone d1,Drone d2)
{
InitializeComponent();
this.d1 = d1;
this.d2 = d2;
}
private void cb_drone_SelectedIndexChanged(object sender, EventArgs e)
{
if(cb_drone.SelectedIndex.ToString() == d1.ip_drone)
{
//do something
}
}
}
Meine Frage ist: Wie kann ich dies tun für n Drohnen? Jedes Mal, wenn ich auf eine Schaltfläche klicke, wird eine neue Drohne hinzugefügt (d3, d4, d5, etc ...) und auf ARENA muss ich prüfen, welches Combobox-Objekt die IP der Drohne ist.
private Drone d1, d2;
public Arena(Drone d1,Drone d2)
{
InitializeComponent();
this.d1 = d1;
this.d2 = d2;
}
in diesem Teil des Codes: zum Beispiel, wenn es 10 Fälle von Drone sind geschaffen öffentliche Arena (Drone d1, d2 Drone, Drone d3, etc ...), wie kann ich dies vereinfachen?
EDIT: .............
List<Drone> lista_drones = new List<Drone>;
private Arena arena;
public Inicio()
{
InitializeComponent();
}
private void Inicio_Load(object sender, EventArgs e)
{
}
private void btnconetar_Click(object sender, EventArgs e)
{
lista_drones.Add(new Drone("192.168.1.10"));
lista_drones.Add(new Drone("192.168.1.20"));
arena = new Arena(lista_drones);
arena.Show();
this.Hide();
}
public partial class Arena : Form
{
public Arena(List<Drone> lista_drones)
{
InitializeComponent();
}
private void cb_drone_SelectedIndexChanged(object sender, EventArgs e)
{
if(cb_drone.SelectedIndex.ToString() ==)
{
//do something
}
}
}
Verwenden Sie 'List' anstelle von eindeutigen 'dN' Feldern. –
@DStanley Sie würden wahrscheinlich das in eine Antwort schreiben wollen – cubrr
hm, die funktionieren könnte. Kann ich das etwas besser erklären? Anstatt d1, d2, etc ... zu erstellen, lege ich sie alle auf eine Liste und benutze sie für öffentliche Arena (Liste <> Drohnen) –