从方法中返回字典

TBo*_*one 4 c# generics collections coding-style

这些类型的方法一直困扰着我.没有挖掘代码,我不知道这个字典中的键或子值应该是什么.我已经做了大约一千次,我敢肯定.但它一直困扰着我,因为它缺乏如此多的信息.

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

void GetVisitStatuses(IDictionary<int,HashSet<int>> exportedCharges)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

将材料放在字典中是有意义的,但所有IDictionary方法都有非常抽象的参数.我想我可以创建一个新类,实现IDictionary,并重命名所有参数.这看起来有点矫枉过正.希望c#有一个'typdef'指令.

你怎么避免像这样回复词典?或者你完全避免这种情况?

Jon*_*Jon 9

您可能会发现一个非常简单的解决方案:

public class IdToSetOfWidgetNumbersMap : Dictionary<int,HashSet<int>> { }
Run Code Online (Sandbox Code Playgroud)

好处:

  • 看到返回的方法IdToSetOfWidgetNumbersMap并没有留下很多问题
  • 该类可以完全为空,或者Dictionary如果您愿意,可以选择为公开的成员提供别名

坏处:

  • 您需要为每种类型的字典创建一个do-nothing类