Ist es möglich, den Zugriff auf eine Instanz-variable durch eine statische Methode?
In C# ist es möglich, den Zugriff auf eine Instanz-variable durch eine statische Methode in verschiedenen Klassen, ohne über den parameter übergeben?
In unserem Projekt habe ich eine Data access layer
Klasse, die hat eine Menge von statischen Methoden. In diesen Methoden die SqlCommand
timeout-Wert hart codiert. In einer anderen Klasse(Dac
) in unserem framework-es gibt viele Instanz-Methoden aufrufen, diese statischen Methoden.
Ich nicht wollen, um code zu viel mit der parameter-übergabe. Haben Sie eine andere Lösung, die einfacher ist, als parameter übergeben?
- Eine statische Methode ist nicht verbunden mit irgendeiner Instanz, so wie Sie es erwarten, um zu wissen, welche Instanz zu access Mitglied?
- welche Instanz?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es ist möglich, den Zugriff auf eine Instanz-variable von einer statischen Methode ohne parameter aber nur, wenn Sie darauf zugreifen können über etwas, das als static deklariert. Beispiel:
Sicher, Sie können übergeben Sie eine Instanz als parameter an die Methode. Wie:
Aber wäre es nicht möglich, bei jeder Instanz-Variablen anders.
Einer statischen Methode keine Instanz, mit zu arbeiten, so nicht. Es ist nicht möglich, ohne die übergabe von Parametern.
Eine weitere option für Sie sein könnte, um eine statische Instanz der Klasse (Mark ' s Beispiel zeigt diese Methode bei der Arbeit), obwohl, aus deinem Beispiel bin ich nicht sicher, das würde Ihr problem lösen.
Persönlich, ich denke, parameter übergeben, wird die beste option. Ich bin mir immer noch nicht sicher, warum Sie wollen, scheuen sich davor.
Ja, es kann, solange es eine Instanz eines Objekts im Rahmen.
Singletons zum Beispiel, oder Objekte erstellt innerhalb der Methode selbst..
Nehmen Sie zum Beispiel ein häufiges Szenario :
Nein, Sie können nicht.
Wenn Sie wollen, um den Zugriff auf eine Instanz-variable dann Ihre Methode durch die definition sollte nicht statisch sein.