为什么System.Web.UI中的Pair?

时间:2008-12-03 18:27:21

标签: .net class

至少对我来说,Pair类是一个非常多用途的类。那么为什么微软将它放入System.Web.UI命名空间呢?

我的小脑是否有理由无法理解?

感谢。

4 个答案:

答案 0 :(得分:5)

它用于序列化viewstate(及其堂兄Triplet)。

我猜他们不是基础库的一部分(即使没有任何关于它们的ASP.NET特性)的原因是它们不是非常有用,因为它们是无类型的。

要在基础库中包含无类型对和三元组,可能会被视为鼓励“无类型”编程。

虽然键入的元组可能很有用(我认为F#有它们)。我认为匿名类型涵盖了异构元组的大多数用例。

答案 1 :(得分:3)

我认为你不会找到一个很好的理由。好像它最初是由Web团队创建的,所以他们在命名空间/程序集中创建它。他们还为LinkDemand添加了AspNetHostingPermission,这是不幸的。

就其“预期用途”而言,MSDN表示

  

[ Pair 类]是一个实用程序类,在整个ASP.NET中以各种方式使用,例如在页面状态管理任务期间或在配置节处理程序中。   ...
   Pair 类可以在页面状态持久性实现中以多种方式使用。最常见的用途是作为ViewStateControlState集合的容器。在这种情况下,First属性用于ViewStateSecond用于ControlState

答案 2 :(得分:3)

这不能直接回答问题,但在.NET 4中,您可以,也可能应该使用Tuple

要回答这个问题,我认为在System.Web.UI中放置Pair是一个错误,微软试图通过引入Tuple类来解决这个错误。

答案 3 :(得分:0)

上帝禁止我们应该有一个比字典轻的类型对,并且可以嵌入到类型列表中,以便它可以索引:)。当然创造其中一个是无痛的,但为什么。