大家好!我是新手,不想把看不懂的问题留到年后,所以想请朋友们帮我解释一下这段示例代码的意思。
------
尤其是:[3]段中的
public void RemovedCallback(String k, Object v, CacheItemRemovedReason r)
和:[2]段中的
onRemove = new CacheItemRemovedCallback(this.RemovedCallback);
------
[1]---
......
using System.Web.Caching;public partial class Default4 : System.Web.UI.Page
{
static bool itemRemoved = false;
static CacheItemRemovedReason reason;
CacheItemRemovedCallback onRemove = null;
......
}
[2]---
protected void Button1_Click(object sender, EventArgs e)
{
itemRemoved = false;
onRemove = new CacheItemRemovedCallback(this.RemovedCallback);
Response.Write("<font color='red'>" + + "</font>");
if (Cache["Key1"] == null)
Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(60), TimeSpan.Zero, CacheItemPriority.High, onRemove);
this.cacheOperate();
}
protected void Button2_Click(object sender, EventArgs e)
{
if (Cache["Key1"] != null)
Cache.Remove("Key1");
this.cacheOperate();
}
[3]---
public void RemovedCallback(String k, Object v, CacheItemRemovedReason r)
{
itemRemoved = true;
reason = r;
}
public void cacheOperate()
{
if (itemRemoved)
{
Response.Write("RemovedCallback event raised.");
Response.Write("<BR>");
Response.Write("Reason: <B>Expired</B>");
}
else
{
Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"] as string) + "</B>");
}
}
------
尤其是:[3]段中的
public void RemovedCallback(String k, Object v, CacheItemRemovedReason r)
和:[2]段中的
onRemove = new CacheItemRemovedCallback(this.RemovedCallback);
------
[1]---
......
using System.Web.Caching;public partial class Default4 : System.Web.UI.Page
{
static bool itemRemoved = false;
static CacheItemRemovedReason reason;
CacheItemRemovedCallback onRemove = null;
......
}
[2]---
protected void Button1_Click(object sender, EventArgs e)
{
itemRemoved = false;
onRemove = new CacheItemRemovedCallback(this.RemovedCallback);
Response.Write("<font color='red'>" + + "</font>");
if (Cache["Key1"] == null)
Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(60), TimeSpan.Zero, CacheItemPriority.High, onRemove);
this.cacheOperate();
}
protected void Button2_Click(object sender, EventArgs e)
{
if (Cache["Key1"] != null)
Cache.Remove("Key1");
this.cacheOperate();
}
[3]---
public void RemovedCallback(String k, Object v, CacheItemRemovedReason r)
{
itemRemoved = true;
reason = r;
}
public void cacheOperate()
{
if (itemRemoved)
{
Response.Write("RemovedCallback event raised.");
Response.Write("<BR>");
Response.Write("Reason: <B>Expired</B>");
}
else
{
Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"] as string) + "</B>");
}
}
解决方案 »
- 有做过web聊天(也就是用浏览器做客户端,网页即时通讯)的进
- 这句话怎么理解的,答对了给全分,速战速决!
- ◆◇◆ 关于在线用户数统计! ◆◇◆
- 设置了一个页面中的TextBox控件的style==>{FONT-SIZE:12PT;FONT-FAMILY:"宋体"},如何设置其他页面中的所有TextBox的style都为该style?
- datagrid的问题
- 我想从dataset里绑定一个字段到下拉列表,同时将2个字段存在Hashtable,急,在线等
- 关于设置datagrid中控件的属性的问题
- 在 .net 中 如何 获取 select count (*) from 表 的 值呢?
- RMB求北京asp高人
- 关于打开新窗口传值的问题
- .net2.0里面的新东西,请高手解释一下!
- 第三次提问了了,同样的问题!请高手进来看看啊
这里牵扯到一些C#的知识,我对下面的代码没有什么概念,能帮我解释一下吗?
---
[3]段中的
public void RemovedCallback(String k, Object v, CacheItemRemovedReason r)
[2]段中的
onRemove = new CacheItemRemovedCallback(this.RemovedCallback);
---
准确说,我不理解RemovedCallback方法中的3个参数意义,而且示例中的调用...(this.RemovedCallback)代码也没有带参值?
最后的哪个参数就是一个委托
http://msdn2.microsoft.com/zh-cn/library/7kxdx246(VS.80).aspx 可以看看这里...
第一个连接是介绍cache的
第二个就是主要说你哪个问题的啦
能不能留个联络方式,我的Im是:[email protected]
(2)中的onRemove = new CacheItemRemovedCallback(this.RemovedCallback);是new一个委托,里面的参数的一个方法,你可以看看delegate的介绍,
(3)中的public void RemovedCallback(String k, Object v, CacheItemRemovedReason r)是和委托CacheItemRemovedCallback有相同签名的一个方法具体可以看看委托的用法,结合msdn就差不多了