3

谁能告诉我使用元组的主要优点是什么?在什么情况下我需要使用这些?

4

3 回答 3

4

我假设您在谈论 Tuple<> 类型而不是匿名元组类。

与匿名类型一样,Tuple<> 允许您避免仅仅为了对几个对象进行分组而声明一个新类。与匿名类型不同,元组类型具有已知名称,因此可以用作方法返回和参数值等。

就个人而言,我尽量避免大量使用 Tuple<> 因为它会使代码难以理解,特别是在与原始类型一起使用时(例如,如果你看到一个 Tuple,每个字段代表什么并不明显)。

我发现元组非常有用的一个地方是作为字典键。因为元组实现了 Equals() 和 GetHashCode()(不是 ==,不过!),它们非常适合诸如基于复合键缓存信息的私有字典之类的东西。

于 2012-09-21T03:12:45.840 回答
2

它主要用于避免仅为了传递一组对象而声明具有一些属性的类/结构,其中只能传递一个对象。

于 2012-09-21T03:06:51.890 回答
0

假设我有一个要查看的 url 列表,如果我遇到错误(4xx 或 5xx),我想构建一个列表,然后稍后将其显示给用户,或者只是在我的调试器中查看它。

我会捕获 web 异常并有一个Tuple<string, int>(url,http 错误代码),而不是为一个或两个函数创建一个结构来使用。哎呀,如果列表中有超过 0 个项目,它甚至可能是一个带有断点的 foreach 循环。那是它有用的时候。

于 2012-09-21T03:10:41.497 回答