String auch in anderen Forms verwendbar machen ...

Don Philippo

Mitglied
Hab folgendes Problemchen:

Im MainForm.cs hab ich einen public string strDbFile deklariert, welches später mit einer Pfadangabe beschrieben wird, die auf ein Textfile hinweist.

Möchte nun auf dieses Textfile auch in einem anderen Form zugreifen, d.h. ich habe ein zweites Form "Search.cs", in dem ich genau dieses Texfile durchsuchen möchte.

Wie kann ich die zuvor ermittelte Pfadangabe (strDbFile) im zweiten Form verwenden

Mit (in Search.cs)
Code:
MainForm mForm = new MainForm();
string strFile = mForm.strDbFile;

holt er mir nur den Teil der Variablendeklaration des Strings.

Der String wird aber im Laufe des Programms verändert und hat demnach andere Pfadangaben. Wie kann ich auf diesen String global, von Search.cs aus, zugreifen unter C#?

Irgendwie steh ich auf'm Schlauch ...

Vielen Dank für Eure Hilfe ....

LG
Philipp
 
mann kann varaiblen/etc auch über den konstruktor übergeben

public FormNeu
{
private string variable;

public FormNeu{( string variableZuUebergeben )
{
this.variable = varieblaZuUebergeben;
}
}

aufruf: private FormNeu form = new FormNeu( "hallo" );

man kann auch properties verwenden. der fantasie sind quasi keine grenzen gesetzt!

servus...
Vermin.
 
Vermin, man kann sich auch an die Groß- und Kleinschreibung halten, wie dies in den Regeln für tutorials.de festgehalten ist.

Public Fields (öffentliche Variablen) sollte es prinzipiell nicht geben. Wenn, dann wird ein Zugriff durch Properties geboten. Und ja, ich denke, dass in dem Tutorial für den Anfang alles drinnen sein sollte. Wem diese Variante nicht gefällt, der kann sich auch noch

C# - Daten zwischen zwei Formularen austauschen

näher anschaun. Da ist auch ein Code-Beispiel dabei um sich das anschaun zu können.
 
Kurz, schnell, absolut schmutzig und absolut gegen jegliche objektorientierte Regel.

Ich würde mir diesen Stil nicht angewöhnen. Er mag vielleicht in manchen Fällen der schnellere sein, bringt aber in Zukunft die einen oder anderen Probleme mit sich und sollte daher nicht angewandt werden.
 
Don Philippo hat gesagt.:
Unschön, aber schnell und für meinen Zweck ausreichend.
Angewöhnen werd ich's mir nicht! ;)
So was hab ich schon mal gehört. Beim zweiten mal kam die selbe Ausrede und die Angewohnheit war da ;)
Außerdem sind Statics dafür da, auf Wert zuzugreifen, ohne ein Klassen zu instanzieren. Und du hast ja schon eine Instanz.

aber das musst du selbst wissen.

wie ist das mit dem schnell gemeint?
schnell zu programmieren?
Also ich seh da nicht unbedingt ein Problem, eine Zeile mehr zu schreiben und es damit richtig zu machen.
oder schnell im Sinne von performant?
Das macht überhaupt keine Unterschied
 

Neue Beiträge

Zurück