Gewusst wie: löschen von statischen Variablen in C#
Habe ich deklariert eine statische variable in meiner Klasse, und ich möchte, dass es gelöscht werden, nachdem es verwendet wird. Es ist von Typ int.
Auch gibt es keine controller-Funktion, die aufgerufen wird, wenn die Ansicht wird entladen? Vielleicht kann ich deaktivieren Sie die variable dort.
Bitte lassen Sie mich wissen, wenn weitere Infos erforderlich ist.
Update:
Ich bin Sie einen Wert aus meiner Sicht zum regler. Nun, wenn mein controller hat diesen Wert, ich will, dass es nachhaltig ist. Ich bin mit static.
Für jetzt hat es erwies sich als praktisch. Ich begrüße die Vorschläge für eine bessere Lösung. Aber bitte geben Sie mir Lösung für die aktuelle Frage 🙂
- Ehrlich gesagt, klingt es so, als wenn die variable sollte vielleicht nicht statisch sein. In meiner Erfahrung, statische Variablen/Felder werden sehr selten eine gute Lösung für ein problem. Sie erweisen sich oftmals Probleme in sich.
- Was ist der Zweck dieser statischen variable? Beachten Sie, dass eine statische variable ist nicht gebunden an eine bestimmte Instanz/Objekt.
- Ich bin Sie einen Wert aus meiner Sicht zum regler. Nun, wenn mein controller hat diesen Wert, ich will, dass es nachhaltig ist. Ich bin mit static.
- Es ist gegen das MVC-Prinzip für die übergabe von Werten aus der view zum controller. Ich empfehle, tun Sie das nicht.
- Auch wenn ich die Verwendung von callback-Methoden?
- Was meinst du mit callback-Methoden in MVC?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wollen klare statische variable zuweisen neuen Wert zu.
Wenn Sie möchten, führen etwas vor/nach der controller-action - Nutzung Aktion Filter. Benutzerdefinierte Aktion-filter können Sie zum überschreiben der folgenden Methoden (und die Ausführung Ihrer Logik):
OnActionExecuting
– wird aufgerufen, bevor eine controller-Aktion ausgeführt wird.OnActionExecuted
– wird aufgerufen, nachdem eine controller-Aktion ausgeführt wird.OnResultExecuting
– aufgerufen wird, bevor der controller das Ergebnis einer Aktion ausgeführt wird.OnResultExecuted
– wird aufgerufen, nachdem eine controller-action wird ausgeführt.Rate ich dir dringend gegen Verwendung von statischen Variablen in den Kontext einer web-Anwendung. Denken Sie daran, dass viele Anfragen gleichzeitig bearbeitet werden können von verschiedenen threads, was zu wirklich "schwer zu erkennen" bugs.
Verwendung einer statischen
ThreadLocal - <T>
statt.Können Sie auch wickeln Sie Ihre statische variable in der session zu pflegen, unterschiedliche Werte pro session, wie diese.
Und werden Sie nicht brauchen, um es zu deaktivieren mehr, wenn dies ist, warum Sie wollen, um den Wert zu löschen.