我有一对夫妇在一个受保护的类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