至少对我来说,Pair类是一个非常多用途的类。那么为什么微软将它放入System.Web.UI命名空间呢?
我的小脑是否有理由无法理解?
感谢。
答案 0 :(得分:5)
它用于序列化viewstate(及其堂兄Triplet)。
我猜他们不是基础库的一部分(即使没有任何关于它们的ASP.NET特性)的原因是它们不是非常有用,因为它们是无类型的。
要在基础库中包含无类型对和三元组,可能会被视为鼓励“无类型”编程。
虽然键入的元组可能很有用(我认为F#有它们)。我认为匿名类型涵盖了异构元组的大多数用例。
答案 1 :(得分:3)
我认为你不会找到一个很好的理由。好像它最初是由Web团队创建的,所以他们在命名空间/程序集中创建它。他们还为LinkDemand添加了AspNetHostingPermission,这是不幸的。
就其“预期用途”而言,MSDN表示
[ Pair 类]是一个实用程序类,在整个ASP.NET中以各种方式使用,例如在页面状态管理任务期间或在配置节处理程序中。 ...
Pair 类可以在页面状态持久性实现中以多种方式使用。最常见的用途是作为ViewState和ControlState集合的容器。在这种情况下,First属性用于ViewState,Second用于ControlState。
答案 2 :(得分:3)
这不能直接回答问题,但在.NET 4中,您可以,也可能应该使用Tuple。
要回答这个问题,我认为在System.Web.UI中放置Pair是一个错误,微软试图通过引入Tuple类来解决这个错误。
答案 3 :(得分:0)
上帝禁止我们应该有一个比字典轻的类型对,并且可以嵌入到类型列表中,以便它可以索引:)。当然创造其中一个是无痛的,但为什么。