Ich bin mir nicht sicher, ob dies möglich ist, so wie ich es versucht habe. Ich könnte es falsch angehen, also werde ich versuchen, das größere Bild ein wenig zu erklären. Ich bin ziemlich neu in dieser Art von Programmierung.Verschachtelungstypen und zugängliche Felder
Ich verwende die NationalInstruments.VISA-Bibliothek, um auf Geräte zuzugreifen. Wenn Sie eine Verbindung öffnen, bestimmt die Bibliothek, welcher Verbindungstyp sie ist, und lädt eine entsprechende Schnittstelle, über die Sie auf alle Konfigurationsfelder für diese Verbindung zugreifen können. Das Programm ruft eine XML-Datei ab, um gespeicherte Verbindungen und ihre Konfigurationen aufzurufen.
In meinem Programm möchte ich ein Array von Objekten haben, die alle abgerufenen Verbindungseinstellungen definieren, so dass sie bei Bedarf referenziert werden können. Ich habe Probleme herauszufinden, wie man diesen Satz von Objekten zu definieren.
Dies ist ein generisches Beispiel dafür, wie ich die Objekte verwenden möchte, sobald sie definiert sind.
public class Device
{
public string type;
}
public class Serial
{
public int baudrate;
public string serialstuff;
}
public class GPIB
{
public int addr;
public string gpibstuff;
public string more stuff;
}
public example()
{
Device[] devlist = new Device[2];
devlist[0]=new Serial();
devlist[1]=new GPIB();
foreach (Device dev in _devlist)
{
if (dev.type == serial) //send serial settings
if (dev.type == gpib) //send gpib settings
}
}
Die Methoden, die ich versucht habe, scheinen mir nahe zu kommen, aber ich kann nicht ohne direkt erklärt das Array als dieser Unterklasse die Felder der Unterklassen Zugriff scheinen. Ich komme wahrscheinlich nur falsch an, aber ich habe keinen alternativen Weg gefunden.
[Java innere Klassen in C#] (http://stackoverflow.com/questions/2367015/java-inner-classes-in-c-sharp) kann erklären, Problem, das Sie haben (ich bin nicht genau sicher, was Sie habe ein Problem mit Code, den du gezeigt hast, scheint vernünftig zu sein) –