Umfang Der ASP.Net Variablen
Ich bin ein bit von einem seltsamen problem zu tun, mit dem Gültigkeitsbereich von Variablen. Ich habe deklariert eine variable in der folgenden Weise:
public partial class MyClass: System.Web.UI.Page
{
protected static int MyGlobalVariable;
protected void MyFunction()
{
MyGlobalVariable = 1;
}
}
Und dies funktioniert sehr gut über die Funktionsweise von meiner Seite. Aber wenn zwei Benutzer die gleiche Seite ich zu finden bin, die ich bin immer überqueren. Wenn ein Benutzer die variable auf 5 und die anderen nutzen dann aufgerufen, die variable würde es auf 5 gesetzt. Wie kann ich die variable so ist es nur dem Benutzer zugänglich, der ursprünglich das einstellen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie erklären
MyGlobalVariable
als statische, dann nur in einer Instanz existieren, die für alle Instanzen der Klasse, so wie du gesagt hast, mehrere Benutzer, die auf mehreren Instanzen von der gleichen Seite auf den gleichen Wert.entweder deklarieren int ohne die
static
modifier oder, wenn Sie es brauchen, um weiterhin für diesen Benutzer ist, sollten Sie mithilfeViewstate
(für Seite Umfang) oderSession
(für session-scope)z.B.
oder
Entfernen Sie die statische Erklärung:
Mehr auf Statische Variablen
Nicht immer mit STATISCHEN Variablen in Ihre Seiten.
Statische Variablen verwenden denselben Speicher-Adresse intern. Also alle bekommen die Nutzer die gleiche Wert gespeichert.
Gut, wenn Sie diese benötigen "öffentlichen" varilables. Dann müssen Sie einige tricks anwenden, wie viewstate oder Sitzung.