我有一對夫婦在一個受保護的類C#的變量,我使用存儲的最後座標點擊一個HTML畫布和變量是不改變的時候調用該方法:爲什麼不是這個靜態c#變量改變?
public partial class Default : Page {
public static int xVar {get; set;}
public static int yVar {get; set;}
protected void Page_Load(object sender, EventArgs e) {
}
protected string getDate() {
return Convert.ToString(DateTime.Now.Year);
}
[WebMethod]
protected void InsertPoints(int x, int y) {
xVar = x;
yVar = y;
//SQL Connect stuff and other code that works
}
}
的方法是從一個aspx頁面調用,它會調用它。問題是它將變量初始化爲零,並且無論我在Canvas中單擊哪個位置,它們都保持這種方式。事實上,當存在SQL插入時,它會插入正確的整數(x和y),但我無法獲取要更改的靜態變量。 謝謝。
什麼是靜態變量?這些是實例屬性,所以它們只會在Web方法被調用時纔會持續,然後被拋出。除此之外,請小心使用ASP中的靜態內容。您可以遇到一些線程問題,以及靜態字段或屬性的多個實例。它變得混亂。只有在數據可能過期時才使用靜態。 – 2015-02-09 23:23:17
沒有'靜態'變量可見。你有沒有顯示正確的代碼? – BradleyDotNET 2015-02-09 23:23:39
線索名稱爲'static'。你必須聲明你的變量爲'static'。你沒有。每個請求都會構造一個新的「Page」,因此任何實例中的任何狀態都會被隨後的請求丟棄,並且每次都會處理一個全新的新構造的實例。 – spender 2015-02-09 23:23:41