这些类型的方法一直困扰着我。没有深入研究代码,我不知道这个字典中的键或子值应该是什么。我已经做了大约一千次,我敢肯定。但它一直困扰着我,因为它缺乏如此多的信息。
IDictionary<int,HashSet<int>> GetExportedCharges()
{
...
}
void GetVisitStatuses(IDictionary<int,HashSet<int>> exportedCharges)
{
...
}
将材料放在字典中是有意义的,但所有IDictionary方法都有非常抽象的参数。我想我可以创建一个新类,实现IDictionary,并重命名所有参数。这看起来有点矫枉过正。希望c#有一个'typdef'指令。
你如何避免回复这样的词典?或者你完全避免这种情况?
答案 0 :(得分:9)
您可能会发现一个非常简单的解决方案:
public class IdToSetOfWidgetNumbersMap : Dictionary<int,HashSet<int>> { }
优点:
IdToSetOfWidgetNumbersMap
的方法并没有留下很多问题Dictionary
公开的成员提供别名缺点:
答案 1 :(得分:0)
就个人而言,我不会避免返回词典。
我同意,只有方法签名,它看起来都很模糊。因此,我的规则是始终以“字典(键的逻辑描述) - (值的逻辑描述)”样式编写注释。并希望我不需要使用像
这样可怕的东西Dictionary<SomeType, <Dictionary<...>>