刚刚接触扩展方法,目前正在开发一些映射逻辑,以将应用程序发票转换为 Quickbooks 发票。认为拥有 .Convert() 扩展方法可能是个好主意。

public static QBInvoice Convert(this InvoiceHeader importedInvoice)

转换只是一个类到另一个类的字段映射。但是后来我在某处读到扩展方法是扩展原始类,而不是将其转换为另一个类。这就是为什么我要问。我知道从技术上讲我可以做到,但这是符合最佳实践还是禁忌?

最佳答案

我个人喜欢使用显式强制转换,因此:

public class InvoiceHeader
{
   public static explicit operator QBInvoice(InvoiceHeader invoice)
   {
      return new QBInvoice {}; // do your mapping
   }
}

然后你可以转换它:
var qbInvoice = (QBInvoice) invoiceHeader;

关于c# - 使用扩展方法将一个类映射到另一个类是否合适,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22161823/

10-13 07:50