C# 单对象参数的单数方法名称,列表的复数形式?

C# 单对象参数的单数方法名称,列表的复数形式?,c#,.net,C#,.net,我在为数据库应用程序命名方法时遇到问题 在我的数据库实例中,我有一个方法可以从数据库中删除协议对象。但是,我希望能够一次删除多个协议s,以便能够使用事务。问题是我还有一个重载来删除单个Agreement对象 基本上,我的结构是这样的: public class Database { // ... public void RemoveAgreement(Agreement a) { // ... } public void RemoveA

我在为数据库应用程序命名方法时遇到问题

在我的
数据库
实例中,我有一个方法可以从数据库中删除
协议
对象。但是,我希望能够一次删除多个
协议
s,以便能够使用事务。问题是我还有一个重载来删除单个
Agreement
对象

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

public class Database
{
    // ...

    public void RemoveAgreement(Agreement a)
    {
        // ...
    }

    public void RemoveAgreement(IEnumerable<Agreement> agreements)
    {
        // ...
    }
}
公共类数据库
{
// ...
公共无效撤销协议(协议a)
{
// ...
}
公共无效移除协议(IEnumerable协议)
{
// ...
}
}
但这可能会让人困惑,因为协议列表的重载有一个单数名称,尽管它本身就是复数

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


谢谢。

我建议使用单独的名称,并将复数版本重载为
参数协议[]

我认为对于将列表作为参数接收的方法,名称
RemoveAgreement
不正确,原因如下所述

我会称之为
RemoveAgreements

对于类(数据库)的名称,我要说的是,您将它用作所有实体的DAO

如果您只对协议实体使用这个类,我将使用这2个方法

公共无效删除(协议)


public void Remove(IEnumerable agreements)

在这种情况下,我会这样做:

public void RemoveAgreement (Agreement agreement)
{
    // Do Stuff
}

public void RemoveAgreements (IEnumerable<Agreement> agreements)
{
    foreach (Agreement a in agreements)
    {
        RemoveAgreement(a);
    }
}
公共无效撤销协议(协议)
{
//做事
}
公共无效移除协议(IEnumerable协议)
{
foreach(协议中的协议a)
{
搬迁协议(a);
}
}

是的,这是一个相当小的应用程序,它只跟踪三种类型的对象,所以我认为只使用一个DAO就不那么复杂了。