当你创建一个参数包含2个对象但只改变1的方法时,有什么好的做法

col*_*ang 1 c#

例如:

          void FilterA(Hashset<T> blackList, List<T> myList)
          {
            blackList.UnionWith(myList);
          }
Run Code Online (Sandbox Code Playgroud)

我不知道是否会有一些好的编码风格分开blackListmyList分开.还是有必要的?

Ree*_*sey 7

在良好实践方面 - 在您的具体情况下,我会抛弃这种方法.实现一个只包含单个框架方法(HashSet<T>.UnionWith)的方法实际上除了模糊代码之外什么都不做.

但是,总的来说,我认为文档和命名是关键.如果你的方法名称更清楚,那就很明显了.考虑这种方法 - FilterA实际上建议您"过滤"集合,而不是根据第二个集合向其添加项目.

此外,使用适当的接口,例如IEnumerable<T>,而不是传递具体的类(List<T>)可以帮助区分事物.如果传递则尤其如此IEnumerable<T>,因为这是一个不公开任何编辑操作的接口.