代码之家  ›  专栏  ›  技术社区  ›  user153498

单个对象参数的单数方法名,列表的复数方法名?

  •  2
  • user153498  · 技术社区  · 16 年前

    Database 例如,我有一个方法可以删除 Agreement 对象。但是,我希望能够删除多个 协议 可以使用事务。问题是,我也有一个超载删除一个单一的 协议 对象。

    基本上,我的结构是这样的:

    public class Database
    {
        // ...
    
        public void RemoveAgreement(Agreement a)
        {
            // ...
        }
    
        public void RemoveAgreement(IEnumerable<Agreement> agreements)
        {
            // ...
        }
    }
    

    但这可能会让人困惑,因为 协议

    我的问题是, 我应该如何构建这个?我应该有两个重载的名字吗 RemoveAgreement() RemoveAgreements() ? 或者我应该使用两个不同的方法,而不是重载?

    谢谢。

    3 回复  |  直到 16 年前
        1
  •  7
  •   Claudio Redi    16 年前

    对于接收列表作为参数名称的方法 RemoveAgreement 与你描述的原因不符。

    我会叫它 RemoveAgreements

    如果你只对协议实体使用这个类,我会有这两个方法

    public void Remove(Agreement agreement)

    public void Remove(IEnumerable<Agreement> agreements)

        2
  •  1
  •   Ian P    16 年前

    public void RemoveAgreement (Agreement agreement)
    {
        // Do Stuff
    }
    
    public void RemoveAgreements (IEnumerable<Agreement> agreements)
    {
        foreach (Agreement a in agreements)
        {
            RemoveAgreement(a);
        }
    }
    
        3
  •  0
  •   SLaks    16 年前

    我建议使用单独的名称,并使复数版本超载,需要一个 params Agreement[]

    推荐文章