C# web 全局变量怎么定义啊

birdwinman 2013-04-11 03:14:11
C# web 全局变量怎么定义啊,比如
 public class ClassN
{
int TotalUser = 0;

//注册用户数
public int RegUser(string uid, string uname)
{
//判断是否过多用户
int ll_count;
TotalUser = TotalUser + 1;

return 1;
}
public int GetUserTotal()
{
return this.TotalUser;
}

我在客户端调用了

classN n = new ClassN();
protected void Login_Click(object sender, EventArgs e)
{
n.RegUser("1","1");
}

protected void display_Click(object sender, EventArgs e)
{
int t=0;
t=n.GetUserTotal();
}

不过如何注册,怎么t=n..GetUserTotal() 永远只为0啊
...全文
407 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xwcsnd 2015-05-29
  • 打赏
  • 举报
回复
引用 10 楼 xweiso 的回复:
[quote=引用 8 楼 shawn_yang 的回复:] 不过这里有个漏洞,如果两个人同时去修改TotalUser的值时,会出现不准确的值,所以代码里用lock public int RegUser(string uid, string uname) { //判断是否过多用户 int ll_count; lock (this) { TotalUser = TotalUser + 1; } return 1; }
貌似你这个lock 不能达到同步效果吧 用一个静态变量取代lock(this) 里面的this lock(静态变量)[/quote] 我错了
xwcsnd 2015-05-15
  • 打赏
  • 举报
回复
引用 8 楼 shawn_yang 的回复:
不过这里有个漏洞,如果两个人同时去修改TotalUser的值时,会出现不准确的值,所以代码里用lock public int RegUser(string uid, string uname) { //判断是否过多用户 int ll_count; lock (this) { TotalUser = TotalUser + 1; } return 1; }
貌似你这个lock 不能达到同步效果吧 用一个静态变量取代lock(this) 里面的this lock(静态变量)
birdwinman 2013-04-11
  • 打赏
  • 举报
回复
谢谢2位大侠
shawn_yang 2013-04-11
  • 打赏
  • 举报
回复
不过这里有个漏洞,如果两个人同时去修改TotalUser的值时,会出现不准确的值,所以代码里用lock public int RegUser(string uid, string uname) { //判断是否过多用户 int ll_count; lock (this) { TotalUser = TotalUser + 1; } return 1; }
shawn_yang 2013-04-11
  • 打赏
  • 举报
回复
static这个关键字用了以后,不管你new几个对象,他们都共用TotalUser这个变量,也就是说你a对象改变了TotalUser的值,此时b对象去查看TotalUser的值,就会发现是a对象改的那个值
gxingmin 2013-04-11
  • 打赏
  • 举报
回复
静态的变量不属于任何对象,只属于类本身,只能ClassN.TotalUser,不能this.TotalUser
birdwinman 2013-04-11
  • 打赏
  • 举报
回复
可以了,谢谢,但是不知道这是啥意思,能否解释下需要使用 static int TotalUser = 0; //定义成静态的 return TotalUser; //this.去掉 为什么要去掉this。
birdwinman 2013-04-11
  • 打赏
  • 举报
回复
我先试一下看看
gxingmin 2013-04-11
  • 打赏
  • 举报
回复
是的,除非你的iis重启(重启将又从0开始)
birdwinman 2013-04-11
  • 打赏
  • 举报
回复
gxingmin,这样的话,不管每个客户端注册都能读出来数据么?
gxingmin 2013-04-11
  • 打赏
  • 举报
回复
public class ClassN { static int TotalUser = 0; //定义成静态的 //注册用户数 public int RegUser(string uid, string uname) { //判断是否过多用户 int ll_count; TotalUser = TotalUser + 1; return 1; } public int GetUserTotal() { return TotalUser; //this.去掉 }

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧