Forum: PC-Programmierung C# VS 2013 Fehlermeldeung: serialPort1 Kontext.


von Jochen (Gast)


Lesenswert?

Hallo,

ein Programm, das aus zwei Dateien besteht, macht mir etwas Kummer.

Datei 1 ist FORM1.cs mit einem Button, einer TextBox und serialPort1.

Datei 2 ist CodeFile1.cs mit einer Klasse. Diese Klasse wird in FORM1.cs 
instanziiert.

Soweit ich von Form1 mit den Methoden in CodeFile1 arbeite funktioniert 
alles einwandfrei. Verwende ich in Form1 serialPort1 funktioniert dieser 
ebenfalls.

Nur wenn ich serialPort1 von einer Methode in CodeFile1 aus aufrufe 
will, dann erhalte ich vom Compiler diese Fehlermeldung:

1
Der Name "serialPort1" ist im aktuellen Kontext nicht vorhanden.

Wie kann ich in CodeFile1 den Namen serialPort1 "bekanntmachen"?

Jochen

von Jan B. (do9jhb)


Lesenswert?

Du könntest beim Aufruf von einer Funktion von CodeFile1 aus Form1 
serialPort1 über geben. Also so irgendwie
1
In CodeFile1.CS:
2
public void func(ref SerialPort SerialPort1)
3
{
4
//Nach irgendwas mit SerialPort1
5
6
}

Und in Form1.cs rufst du machst du dann func(serialPort1)

von c-hater (Gast)


Lesenswert?

Jochen schrieb:

> Wie kann ich in CodeFile1 den Namen serialPort1 "bekanntmachen"?

Garnicht.

Die ganz_blöde Lösung wäre: serialPort1 in Form1 "public" oder 
"internal" zu machen. Dann könntest du das Teil immerhin als 
Form1.serialPort1 ansprechen.

Die etwas klügere (aber immer noch ziemlich_blöde) Lösung wurde 
bereits gepostet (Referenz-Übergabe mittels irgendeines 
Methoden-Aufrufs).

Die wirklich kluge Lösung ist: Wenn die Klasse mit dem Port hantieren 
muß, dann hat der Port auch der Klasse zu gehören und nicht irgendeiner 
verschissenen GUI-Form. Ja, man kann den Port dann nicht mittels 
Maus-Geschubse erzeugen. Drauf geschissen. Programmieren heißt: 
Quelltexte schreiben, nicht Maus-Schubsen.

Am besten, du lernst einfach mal die Sprache, die du da benutzt...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.