c# - 如何命名具有相同签名的 2 个方法

标签 c#

最初我在我们的 DL 中有一个方法可以像这样接受它正在更新的对象:

internal void UpdateCash(Cash Cash)
{
    using (OurCustomDbConnection conn = CreateConnection("UpdateCash"))
    {
        conn.CommandText = @"update Cash
                             set    captureID = @captureID,
                                    ac_code = @acCode,
                                    captureDate = @captureDate,
                                    errmsg = @errorMessage,
                                    isDebit = @isDebit,
                                    SourceInfoID = @sourceInfoID,
                                    PayPalTransactionInfoID = @payPalTransactionInfoID,
                                    CreditCardTransactionInfoID = @CreditCardTransactionInfoID
                                 where id = @cashID";

        conn.AddParam("@captureID", cash.CaptureID);
        conn.AddParam("@acCode", cash.ActionCode);
        conn.AddParam("@captureDate", cash.CaptureDate);
        conn.AddParam("@errorMessage", cash.ErrorMessage);
        conn.AddParam("@isDebit", cyberCash.IsDebit);
        conn.AddParam("@PayPalTransactionInfoID", cash.PayPalTransactionInfoID);
        conn.AddParam("@CreditCardTransactionInfoID", cash.CreditCardTransactionInfoID);
        conn.AddParam("@sourceInfoID", cash.SourceInfoID);
        conn.AddParam("@cashID", cash.Id);

        conn.ExecuteNonQuery();
    }
}

我的老板认为每次都创建一个对象只是为了更新一两个字段是矫枉过正的。但是我在使用它的代码中有几个地方。他建议仅使用 UpdateCash 并发送 CAsh 的 ID 和我要更新的字段。好吧,问题是我使用原始方法在代码中有 2 个位置。而这 2 个地方正在更新 Cash 表中的 2 个完全不同的字段。在此之前,我只能获取现有的 Cash 记录并将其放入 Cash 对象,然后更新我想在数据库中更新的属性,然后将 cash 对象发回我上面的方法。

我需要一些关于在这里做什么的建议。我有 2 种方法,它们具有相同的签名。我不太确定要重命名这些,因为两者都在更新 Cash 表中的 2 个完全不同的字段:

internal void UpdateCash(int cashID, int paypalCaptureID)
{
    using (OurCustomDbConnection conn = CreateConnection("UpdateCash"))
    {
        conn.CommandText = @"update Cash
                             set    CaptureID = @paypalCaptureID
                  where id = @cashID";

        conn.AddParam("@captureID", paypalCaptureID);

        conn.ExecuteNonQuery();
    }
}

internal void UpdateCash(int cashID, int PayPalTransactionInfoID)
{
    using (OurCustomDbConnection conn = CreateConnection("UpdateCash"))
    {
        conn.CommandText = @"update Cash
                             set    PaymentSourceID = @PayPalTransactionInfoID
                  where id = @cashID";

        conn.AddParam("@PayPalTransactionInfoID", PayPalTransactionInfoID);

        conn.ExecuteNonQuery();
    }
}

所以我想,嗯,也许可以将名称更改为这些名称,以便它们现在是独一无二的,并在某种程度上解释其更新的字段:

UpdateCashOrderID

UpdateCashTransactionInfoID

好的,但这并不是很好的名字。而且我不能太笼统,例如:

UpdateCashTransaction(int cashID, paypalTransactionID)

如果现金记录除了 paypalTransactionInfoID 之外还有不同类型的交易 ID 怎么办?例如 creditCardInfoID?然后呢?交易没有告诉我什么样的。此外,如果您要更新 2 个字段,那么 cashID 参数旁边有 2 个参数怎么办:

UpdateCashTransaction(int cashID, paypalTransactionID, someOtherFieldIWantToUpdate)

看到我的沮丧了吗?如果我的老板不喜欢我的第一条路线,最好的处理方法是什么?

最佳答案

为什么不只是:

UpdateCashPaymentSource(int cashID, int PayPalTransactionInfoID)

UpdateCashCapture(int cashID, int paypalCaptureID) 

关于c# - 如何命名具有相同签名的 2 个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2556217/

相关文章:

c# - 为什么流式传输文件而不是立即发送?

c# - 在 Autofac 中,RegisterAssemblyOpenGenericTypes 和 RegisterAssemblyTypes 与 AsClosedTypesOf 之间有什么区别?

c# - 无法使用 .config 登录凭据覆盖 MailMessage 类中的 "From"地址

c# - 如何在不打开浏览器的情况下运行 url 并再次保存加载的文件?

c# - 调用 EventHandler 泛型,TargetParameterCountException

c# - 通过什么 .NET 类来代理 HTTP 请求? (并跟踪使用的带宽)

c# - System.Threading.Task 未在生产环境中启动

c# - 在 C# 中使用 LINQ 时函数求值超时

c# - 有没有更有效的方法将 double 转换为 float?

c# - 重复 session ID