Wohin mit den ganzen Funktionen

Railer

Mitglied
Hi!

Ich habe viele Funktionen, die ich oft in unterschiedlichen Forms benutze. Wie kann ich diese Funktionen in eine Datei auslagern? Ich habe bereits probiert eine Datei zu erstellen, die eine Klasse beinhaltet mit allen möglichen Methoden, die ich brauche, ich hab auch alles public deklariert, aber ich kann auf die Methoden dieser Klasse trotzdem nicht zugreifen
In Delphi ging das mit ner stinknormalen Unit, in C mit einer .cpp-Datei und hier?

ASP.NET mit C#
 
Hallo.

Hier schreibst du das ganze meines Wissens in eine ganz normale Datei in C# und speicherst das unter .dll ab.
So, meine ich, steht das in meinem C#-Buch über das Erstellen eigener Klassenbibliotheken.
Und selbige sind doch das, was du suchst, oder?

Gruß, Niko

EDIT: Schau mal hier http://msdn.microsoft.com/library/d...ef/html/cpconNETFrameworkDesignGuidelines.asp unter "Entwurfsrichtlinien für die Entwicklung von Klassenbibliotheken" nach.
Da dürftest du fündig werden...
 
Zuletzt bearbeitet:
Hi,

wie greifst du denn auf diese Methoden zu? Wenn sie nicht als 'static' deklariert sind musst du in jeder Form eine Instanz dieser "Sammelklasse" erstellen.
 
Hi!

Danke erstmal für die Antworten.

Also ich hab jetzt eine Klassenbibliotek erstellt in Form einer DLL. In dieser DLL ist eine Klasse drin mit den ganzen Methoden, die ich brauche. Diese DLL binde ich bei mir im Programm an, was auch funktioniert. Das Problem ist jetzt folgendes: Wenn ich in meinem Programm eine funktion aus meiner DLL benutzen will, muss ich erstmal eine Instanz dieser Klasse erstellen. Nun das macht natürlich nicht viel Sinn in jeder Form ein Objekt von meiner DLL zu erstellen, ich will ganz einfach nur die Funktionen benutzen.

Geht das vielleicht irgendwie so, dass ich ne DLL ohne Klasse erstelle, einfach als Funktionen-Sammlung, oder wie mach ich das?
 
Hallo.

Um eine Methode einer Klasse zu benutzen, ohne eine Instanz der Klasse bilden zu müssen, musst du im Normalfall die Methode einfach nur statisch machen, also mit dem Modifizierer "static" versehen.
Das soll heißen: Mach deine Methoden "public static", und andere Klassen können darauf zugreifen, ohne ein Objekt erzeugen zu müssen.
Und eine Klassenbibliothek (DLL) ohne Klassen ist in meinen Augen etwas suspekt. :suspekt:

Gruß, Niko
 
Zuletzt bearbeitet:
Nochmal Hallo...

Hab da, glaube ich, was gefunden unter:
http://www.aspheute.com/artikel/20031128.htm
(Musst bis ca. zur Mitte scroolen, wo von den Variablen "MyText" und "Wert" die Rede ist)
Probier mal den dort für die eine Variable benutzten Modifizierer "shared". Der müsste theoretisch auch für Methoden verwendbar sein und sollte den selben Effekt haben wie "static" unter C#.

EDIT: Ok, hab dazu in der MSDN noch folgendes gefunden:
"Mit dem Shared-Schlüsselwort wird angegeben, dass eines oder mehrere deklarierte Programmierelemente gemeinsam genutzt werden. Gemeinsam genutzte Elemente sind nicht mit einer bestimmten Instanz einer Klasse oder Struktur verknüpft. Sie können darauf zugreifen, indem Sie den Klassen- oder Strukturnamen bzw. den Variablennamen einer bestimmten Instanz der Klasse oder Struktur angeben."
und:
"Shared-Methoden können direkt über eine Klassenvariable aufgerufen werden, ohne dass zunächst eine Instanz der Klasse erstellt werden muss. Shared-Methoden sind hilfreich, wenn eine Methode nicht mit einer bestimmten Klasseninstanz verknüpft werden soll. Shared-Methoden können nicht mit dem Overridable-, NotOverridable- oder MustOverride-Modifizierer deklariert werden. Methoden, die in Modulen deklariert werden, sind implizit freigegeben und können nicht explizit im Shared-Modifizierer verwendet werden."
Zum selberstöbern:http://msdn.microsoft.com/library/deu/default.asp?url=/library/DEU/vbcn7/html/vbconMethods.asp

Gruß, Niko
 
Zuletzt bearbeitet:
Zurück