Laden...

CS0176: Auf den Member "X" kann nicht mit einem Instanzenverweis zugegriffen werden.

Erstellt von Mr Bean vor 13 Jahren Letzter Beitrag vor 13 Jahren 9.588 Views
Thema geschlossen
M
Mr Bean Themenstarter:in
1 Beiträge seit 2010
vor 13 Jahren
CS0176: Auf den Member "X" kann nicht mit einem Instanzenverweis zugegriffen werden.

Hallo

Ich habe bisher eigentlich nur Programme für µController in C geschrieben. Nun wollte ich in C# ein Programm schreiben um damit auf einen µController zuzugreifen (UART).
Ich habe es bis jetzt soweit geschafft, einen COM Port zu öffnen.
Außerdem hab ich in es geschafft, in der MainForm eine Combobox mit den verfügbaren COM Ports zu füllen:


namespace DataLogger
{
	public partial class MainForm : Form
	{
		private static System.IO.Ports.SerialPort serialPort1;
		
		// Get a list of serial port names.
        string[] ports = SerialPort.GetPortNames();

		public MainForm()
		{
			InitializeComponent();
            
			foreach(string port in ports)
			{
				COMPortList.Items.Add(port);
			}
			BaudList.Items.Add("115200");
			BaudList.Items.Add("9600");
			BaudList.SelectedIndex = 0;
			COMPortList.SelectedIndex = 0;
		}
		
		void MainFormLoad(object sender, EventArgs e)
		{
			
		}
	}
}

Wenn ich das gleiche jetzt innerhalb des EventHandlers machen möchte, also der ComboBox immer aktualisiert wird wenn ich darauf klicke, dann bekomme ich folgende Fehlermeldung:

Auf den Member "System.IO.Ports.SerialPort.GetPortNames()" kann nicht mit einem Instanzenverweis zugegriffen werden. Qualifizieren Sie ihn stattdessen mit einem Typnamen. (CS0176)

Hier der entsprechende Code:


void COMPortListSelectedIndexChanged(object sender, EventArgs e)
		{
			string [] availablePorts = serialPort1.GetPortNames();
			foreach(string port in ports)
			{
				COMPortList.Items.Add(port);
			}
		}

Wahrscheinlich ist das Problem recht simpel, aber irgendwie komme ich nicht drauf. Könnt ihr mir hier irgendwie helfen?

Grüße

Bean

Ja, ich bin Anfänger...
Bisher nur C-Code für µController (8051 und AtMega)

U
1.688 Beiträge seit 2007
vor 13 Jahren

Hallo,

schau Dir die Fehlermeldung an und vergleiche die geposteten Code-Schnippsel, natürlich insbesondere den Aufruf von GetPortNames.

Beachte auch dies: [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)

479 Beiträge seit 2008
vor 13 Jahren

Hallo Mr Bean,

schreibe anstatt serialPort1 SerialPort. Da du es im 1. Beispiel richtig hattest tippe ich auf einen Tippfehler bei der Autovervollständigung.

Sonst einfach mal nach dem Compilerfehler googlen, wobei die Beschreibung schon alles sagt.

mfg.
markus111

Edit: zu langsam...

[Follow me on Twitter](http://twitter.com/blendingsky)
Thema geschlossen