我想用Application存储聊天记录,在对象中使用变量从Message0gc Message19来存储消息。当用户使用超过20条消息后,Web 服务进行消息的滚动,通过将对象Application(“Message1")赋值给Application("Message0"),消息Application(”Message2")赋值给Application("Message1"),以此类推。
/////PostMessage()方法将接收到的消息插入到Application对象中,但我总觉得这Application用起来怪怪的,不知道它里面的参数都是什么样格式的。public Boolean PostMessage(String Message)
{int LastMessage;
Application.Lock();
LastMessage=(int)Application["LastMessage"];if(LastMessage==0)
{
int i;
for(i=0;i<19;i++)
Application["Message[i]"]="";
}
if(LastMessage!=19)
{
Application["Message[LastMessage]"]=Message;
Application["LastMessage"]=LastMessage+1;}
else
{
ScrollMessage();
Application["Message[LastMessage]"]=Message;
}
Application.UnLock();
return true;
}
private void ScrollMessage()
{
for(int i=1;i <19;i ++)
Application["Message[i-1]"] = Application["Message[i]"];}
/////PostMessage()方法将接收到的消息插入到Application对象中,但我总觉得这Application用起来怪怪的,不知道它里面的参数都是什么样格式的。public Boolean PostMessage(String Message)
{int LastMessage;
Application.Lock();
LastMessage=(int)Application["LastMessage"];if(LastMessage==0)
{
int i;
for(i=0;i<19;i++)
Application["Message[i]"]="";
}
if(LastMessage!=19)
{
Application["Message[LastMessage]"]=Message;
Application["LastMessage"]=LastMessage+1;}
else
{
ScrollMessage();
Application["Message[LastMessage]"]=Message;
}
Application.UnLock();
return true;
}
private void ScrollMessage()
{
for(int i=1;i <19;i ++)
Application["Message[i-1]"] = Application["Message[i]"];}
可以换个方式,把那些消息保存到数据库中的一张表中
你每次就取最新的20条好了(按照写入时间排序),
这样实现比较高效,也不需要用到Application的滚动操作了~~
for(i=0;i<19;i++)
Application["Message[i]"]="";
}
双引号中的字符"Message[i]"不会变,因此,不管i是多少,你都是给同一个变量赋了20次值"",Application虽有[]索引器,但一般不用做数组,如果你要用做数组,可以这样用:
for(i=0;i<19;i++)
Application["Message"+i.ToString()]="";
}
另外,Application中存的是对象,取出来时要转化为所需类型。
要怎么写?