Autor Beitrag
Baumunk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50

WinXP
Delphi 2005
BeitragVerfasst: Fr 24.11.06 09:30 
Hallo,

Wie beklariert man in c# eine globale Funktion, Variable bzw. in dem Namespace?

Voraus danke
MagicAndre1981
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 24.11.06 10:17 
globale Variablen gibts in C# nicht mehr (zum Glück)
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 24.11.06 12:23 
user profile iconMagicAndre1981 hat folgendes geschrieben:
globale Variablen gibts in C# nicht mehr (zum Glück)

Nun ja, darüber kann man jahrelang diskutieren, ob das gut oder schlecht ist.

Von Vorteil ist auf jeden Fall, dass unter NET (also auch C#) alles - ALLES! - Klassen sind. Je nachdem, was Du erreichen willst, kommen Singleton-Klassen oder statische Variablen "normaler" Klassen oder Formulare in Frage.

Gruß Jürgen

PS. Ich muss immer wieder auffordern, manche Vorgehensweisen nicht ideologisch, sondern pragmatisch zu betrachten.
Baumunk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50

WinXP
Delphi 2005
BeitragVerfasst: Fr 24.11.06 12:47 
Hallo Jürgen,

Folgendes, Ich schreibe eine namespace wo mehrere Control classen deklariert sind (system.windows.Forms.Control)
Jeder von diesem class verwendet/benotigt gleiche Funktionen (erstellen von neuer farbe, zeichnen von gerundeten recheck usw.).

Ich möchte lediglich nur, dass diese funktionen entwieder global für diese namespace gelten, oder eine neue Class dafür wo diese Funktionen da sind und dass dieses Class als quasi eigenschaft in allen anderen classen abzurufen ist.

Da ein beispiel aus Delphi :

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
Unit xy;

Type
  TMyHelpClass = Class (Object)
  Public
    .........
    Function XY1 : Integer;
    Function XY2 : String;
    ........
  End;

  TMyControl = Class (TWinControl)
  End;

  Function MyHelpClass : TMyHelpClass;

Implementation

Var FMyHelpClass : TMyHelpClass;

Function MyHelpClass : TMyHelpClass;
Begin
  If FMyHelpClass = nil Then FMyHelpClass := TMyHelpClass.Create;
  Result := FMyHelpClass ;
End;

Procedure TMyControl.Paint;
Begin
  .....
  S := MyHelpClass.XY2;
  ..... 
End;


Wo ich neu in c# bin, möchte ich analog beispiel dafür in c# sehen. So wie ich jetzt es verstehen muss ich diese Funktionen in jedem Class schreiben oder ein class mit diesen Functionen schriben und der in jedem anderem class erstellen.

Voraus danke.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 24.11.06 14:19 
Das ist das klassische Singleton-Pattern, Umsetzungen für C# findest du beispielsweise in der Wikipedia.
Allerdings scheint es mir in deinem Fall besser zu sein, zumindest einen Teil der Funktionen nicht in ein Singleton sondern in eine gemeinsame Basisklasse zu stecken.