首页 新闻 赞助 找找看

为什么这种情况下只用New 一次?

0
[待解决问题]

以下的代码是MVC中 提取Request值 的一段代码

    var routeData = new RouteValueDictionary ();
    var rq = Request.QueryString;
    foreach (var key in rq.Keys)
    {
        routeData[key] = rq[key];
    }

请看代码。

var routeData = new RouteValueDictionary ();
  实例化一次之后,直接就可以用

routeData[key] = rq[key];

设置值.

按一般的思想,值的不同,保存的变量要不同,以免值被重新赋值

例如

var a=1;

var b=2;

var c=3;

为什么有些变量就像Request、Session一样,直接可以用一个 [key]  来保存不同的值。

这种是怎么一个情况?

wunaigong的主页 wunaigong | 初学一级 | 园豆:4
提问于:2011-11-27 09:19
< >
分享
所有回答(5)
0
Session["value"] = value;
从HttpSessionState使用方法推测,其内部应该是通过pair<string,Object>来组织Key和Key所映射的对象的关系。
public sealed class HttpSessionState : ICollection, 
IEnumerable
从HttpSessionState类型声明推测,其内部实现了一个collection来管理pair对象,且其保证了Key的唯一性。

从RouteValueDictionary 类型声明也印证了我以上的推测,请留意其继承了ICollection<KeyValuePair<string, Object>>。
public class RouteValueDictionary : IDictionary<string, Object>, 
ICollection<KeyValuePair<string, Object>>, IEnumerable<KeyValuePair<string, Object>>,
IEnumerable


 

胡屯 | 园豆:714 (小虾三级) | 2011-11-27 09:52
0

使用的的是值键对,一种数据结构。

小小刀 | 园豆:1991 (小虾三级) | 2011-11-27 14:32
0

没有太明白你说的意思

上不了岸的鱼 | 园豆:4613 (老鸟四级) | 2011-11-28 09:26
0

Dictionary

Jesong | 园豆:4 (初学一级) | 2011-11-28 13:10
0

这些“变量”实际上是一种字典结构,像数组一样,可以保存多个值,

参考 MSDN Dictionary

碧落星痕 | 园豆:708 (小虾三级) | 2011-11-29 16:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册