Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

CS0176: Auf den Member "X" kann nicht mit einem Instanzenverweis zugegriffen werden.
Mr Bean
myCSharp.de - Member



Dabei seit:
Beiträge: 1

Themenstarter:

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

beantworten | zitieren | melden

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:
Zitat
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)
private Nachricht | Beiträge des Benutzers
ujr
myCSharp.de - Experte



Dabei seit:
Beiträge: 1770

beantworten | zitieren | melden

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)
private Nachricht | Beiträge des Benutzers
markus111
myCSharp.de - Member

Avatar #avatar-3108.png


Dabei seit:
Beiträge: 520
Herkunft: Henstedt-Ulzburg

beantworten | zitieren | melden

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...
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von markus111 am .
private Nachricht | Beiträge des Benutzers