Entwickler-Ecke

C# - Die Sprache - Globale Variable


theo - So 04.06.06 17:44
Titel: Globale Variable
Hallo alle zusammen!

Ich habe bis jetzt mit delphi proammiert und will jetzt .net (C#) nutzen.

Meine Frage:

Wie kann ich eine Variable (gemeinsame SQL-Connection) erzeugen, die in allen Forms und so sichtbar ist und zum Progammstart inizialisiert wird.

in delphi habe ich das bisher so gelöst:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
unit xyz;
.....

var
  WRSConnection:= TWRSConnection;

initialization
  WRSConnection:=TWRSConnection.create(nil);
  WRSConnection.Connected:=true;


finalization
  if assigned(WRSConnection) then begin
    WRSConnection.Free;
  end;

end.


Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


Christian S. - So 04.06.06 18:21

Da C# vollständig objektorientiert ist, gibt es keine globalen Variablen. Du kannst höchstens eine Klasse anlegen und dort Klassenvariablen ablegen, die sind dann überall verfügbar. Ob das guter Stil ist, muss man im Einzelfall entscheiden. Sowas wie finalization und initialization kenn ich in C# gar nicht. :gruebel:


theo - So 04.06.06 18:35

Ich habe eine DB-Anwendung mit vielen Forms. Die "globale Variable" in Delphi habe ich nur für eine gemeinsame Datenbankverbindung genutzt, damit nicht jede Form eine eigene DB-Verbindung aufbauen muss. Ist für diesen Einsatzfall eine Klassenvariable sinvoll? Oder gibt es einen bessere Lösung?


RedEagel - Di 25.07.06 18:53

Hallo,
Eine klassenvariable ist eine gute Idee, da du in der Klasse die DB-Verbindung nur einmal proggen musst und diese klasse dann überall wo du sie verwendest instanzieren kannst (myClass DBKlasse = new myClass(); )
...


Kha - Di 25.07.06 21:09

:gruebel: ?
Der Sinn einer Klassenvariable ist es doch gerade, dass die Klasse nicht instanziiert werden muss.


UC-Chewie - Di 25.07.06 21:40

Such doch mal nach Suche in der Entwickler-Ecke SINGLETON, das sollte genau das sein, was du suchst.