Rufen Sie eine Funktion From Class-Datei auf, ohne ein Objekt dieser Klasse zu erstellen

8

Ich habe eine Funktion in einer Klasse erstellt. und ich möchte es während meines Projekts nennen. aber ich möchte nicht das Objekt dieser Klasse auf jeder Seite erstellen. Gibt es eine globale Deklaration für diese Klasse, so dass wir jede Seite aufrufen können? Vererbung ist nicht möglich in Code hinter Datei von ASPX-Seite .cs-Datei.

    
Moiz Kachwala 20.01.2012, 08:15
quelle

2 Antworten

13

Sie müssen eine Static -Methode in Ihrer Klasse erstellen, damit Sie die Funktion aufrufen können, ohne ein Objekt dieser Klasse zu erstellen, wie im folgenden Ausschnitt gezeigt:

%Vor%

Um die Funktion aufzurufen, verwenden Sie einfach

%Vor%

Sie können sich MSDN ansehen: Statische Mitglieder

Vorschlag

Eine weitere Lösung für Ihr Problem ist die Verwendung von SINGLETON DESIGN PATTERN

Absicht

  1. Stellen Sie sicher, dass nur eine Instanz einer Klasse erstellt wird.
  2. Geben Sie einen globalen Zugangspunkt für das Objekt an.

    
Pranay Rana 20.01.2012, 08:17
quelle
4

Sie müssen es nur zu einer statischen Methode machen:

%Vor%

Dann von überall:

%Vor%

Beachten Sie, dass, da Sie die Methode nicht für eine Instanz des Typs aufrufen, kein instanzspezifischer Zustand vorhanden ist - Sie haben Zugriff auf alle statischen Variablen, aber nicht beliebige Instanz Variablen.

Wenn Sie einen instanzspezifischen Zustand benötigen, benötigen Sie eine Instanz. Der beste Weg, eine geeignete Instanz zu finden, hängt davon ab, was Sie erreichen möchten. Wenn Sie uns mehr Informationen über die Klasse und die Methode geben könnten, könnten wir Ihnen vielleicht mehr helfen.

Zugegebenermaßen ist die Abhängigkeitsinjektion in ASP.NET (vor MVC) ein wenig mühsam, aber Sie sollten sich das genauer ansehen - wenn die Methode einen statischen Zustand verändert, landen Sie mit etwas, was schwer zu testen und schwer zu verstehen ist in Bezug auf Threading.

    
Jon Skeet 20.01.2012 08:17
quelle

Tags und Links