c# - 单个对象参数的方法名称为单数,列表的方法名称为复数?

标签 c# .net

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

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

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

public class Database
{
    // ...

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

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

但这可能会令人困惑,因为协议(protocol)列表的重载具有单数名称,尽管本质上是复数。

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

谢谢。

最佳答案

我想说,对于接收列表作为参数的方法,名称 RemoveAgreement由于您所描述的原因,该信息不正确。

我将其称为RemoveAgreements

对于您的类(数据库)的名称,我想说您将其用作所有实体的 DAO。

如果您仅将此类用于协议(protocol)实体,我将有这 2 种方法

public void Remove(Agreement agreement)

public void Remove(IEnumerable<Agreement> agreements)

关于c# - 单个对象参数的方法名称为单数,列表的方法名称为复数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2707071/

相关文章:

c# - 具有 Nhibernate 设计问题的领域模型

c# - 在应用程序配置文件中找不到名为 'MyAppDbContext' 的连接字符串

c# - 更新通过 CD 安装的 ClickOnce 应用程序时出现 TrustNotGrantedException

c# - 谁能解释一下 OAuth?

c# - 使用 SoundPlayer 在音乐结束后执行某些操作

c# - 有没有办法将这两个 LINQ 语句合并为一个

c# - 在 WCF 服务的方法中使用输出参数是不好的做法吗?

c# - .Net 中可用的并行技术

c# - 如何使用 MEF 导出和导入函数并执行它们?

c# - EF核心: cannot insert object with foreign key using ID properties (only navigation properties work)