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

Joh*_*yre 6 .net class

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

有没有理由让我的小脑无法理解?

谢谢.

Jac*_*esB 5

它用于序列化viewstate(以及它的堂兄Triplet).

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

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

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


bdu*_*kes 3

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

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

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