从方法返回字典

本文关键字:字典 返回 方法 | 更新日期: 2023-09-27 17:59:28

这些类型的方法一直困扰着我。如果不深入研究代码,我就不知道这个字典中的键或子值应该是什么。我自己肯定已经做过一千次了。但它一直困扰着我,因为它缺乏太多的信息。

IDictionary<int,HashSet<int>> GetExportedCharges()
{
    ...
}
void GetVisitStatuses(IDictionary<int,HashSet<int>> exportedCharges)
{
    ...
}

在字典中包含该材料是有意义的,但所有IDictionary方法都有非常抽象的参数。我想我可以创建一个新类,实现IDictionary,并重命名所有参数。这似乎有些过头了。让人希望c#有一个"typdef"指令。

你如何避免像这样退回字典?或者你完全避免这种情况?

从方法返回字典

有一个非常简单的解决方案,您可能会觉得足够:

public class IdToSetOfWidgetNumbersMap : Dictionary<int,HashSet<int>> { }

优点:

  • 看到一个返回IdToSetOfWidgetNumbersMap的方法不会留下很多问题
  • 该类可以完全为空,也可以选择为Dictionary公开的成员提供别名(如果愿意)

缺点:

  • 您需要为每种类型的字典创建一个无所事事的类

就我个人而言,我并不避免返回字典。

我同意,只有方法签名,一切看起来都很模糊。因此,我的规则是始终以"Dictionary(键的逻辑描述)-(值的逻辑描述"的风格编写注释。希望我不需要使用像这样可怕的东西

Dictionary<SomeType, <Dictionary<...>>