最初我在我们的 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/