Gibt es eine Möglichkeit, eine Funktion innerhalb eines Namespace aufzurufen, ohne die Klasse in c # zu deklarieren?
Wenn ich zum Beispiel zwei Methoden hätte, die genau die gleichen sind und in allen meinen C # -Projekten verwendet werden sollen, gibt es eine Möglichkeit, diese Funktionen einfach in eine DLL zu übernehmen und einfach 'Using myTwoMethods' zu verwenden oben und starten Sie mit den Methoden, ohne die Klasse zu deklarieren?
Im Moment mache ich: MyClass.MyMethod ();
Ich möchte: MyMethod ();
Danke, Rohit
Sie können Methoden nicht außerhalb einer Klasse deklarieren, aber Sie können dies mithilfe einer statischen Hilfsklasse in einem Klassenbibliotheksprojekt tun.
%Vor%Verwendung (nach dem Hinzufügen einer Referenz zu Ihrer Klassenbibliothek).
%Vor%Aktualisierung für 2015: Nein, Sie können keine "freien Funktionen" in C # erstellen, aber beginnend mit C # 6 können Sie statische Funktionen aufrufen, ohne den Klassennamen zu erwähnen. C # 6 verfügt über die Funktion "using static" , die folgende Syntax zulässt:
%Vor%SomeOtherFile.cs:
%Vor%Im Anschluss an den Vorschlag zur Verwendung von Erweiterungsmethoden könnten Sie die Methode zu einer Erweiterungsmethode für System.Object machen, von der alle Klassen abgeleitet werden. Ich würde dies nicht befürworten, aber in Bezug auf Ihre Frage könnte das eine Antwort sein.
%Vor% Sie könnten jetzt Code schreiben wie MyMethod();
wo auch immer Sie eine using SomeNamespace;
haben, außer Sie sind in einer statischen Methode (dann müssten Sie Extensions.MyMethod(null)
machen).
Tags und Links class c# namespaces syntax