gpt4 book ai didi

c# - 如何干掉这段代码

转载 作者:行者123 更新时间:2023-11-30 23:29:25 24 4
gpt4 key购买 nike

<分区>

我正在使用他们的 SDK 与 Quickbooks Desktop 集成。我想建立一个通用的项目列表。他们的一般顶级项目查询带回所有项目(作为类型 IORItemRet),然后在顶级项目中具有不同的项目子类型。这些子类型不继承自 Item 基类,因此我必须查看每个返回的项目,使用 switch 语句确定其类型,然后将该特定类型的属性映射到我的通用 QuickbooksItem 类。

正如您在下面看到的,代码非常冗余。如果可能的话,我希望能够封装 ListID 和 Name 的公共(public)属性类型设置。

有什么想法可以干掉这段代码吗?我想我至少可以创建一个函数来接受 (ref qbItem, string ListId, string Name) 并在每个 case 中调用它......但这仍然很潮湿...我希望有一些更干燥的东西。

public static QuickbooksItem ConvertQueryResponseToClass(IORItemRet itemRet)
{
var itemType = itemRet.ortype;
var typeTest = itemRet.Type;

QuickbooksItem qbItem = new QuickbooksItem();

switch (itemType)
{
case ENORItemRet.orirItemServiceRet:
var itemService = itemRet.ItemServiceRet as IItemServiceRet;
qbItem.Id = itemService.ListID.GetValue();
qbItem.Name = itemService.Name.GetValue();
qbItem.ItemType = ItemTypes.Service;
break;

case ENORItemRet.orirItemInventoryRet:
var itemInventory = itemRet.ItemInventoryRet as IItemInventoryRet;
qbItem.Id = itemInventory.ListID.GetValue();
qbItem.Name = itemInventory.Name.GetValue();
qbItem.ItemType = ItemTypes.Inventory;
break;

case ENORItemRet.orirItemNonInventoryRet:
var itemNonInventory = itemRet.ItemNonInventoryRet as IItemNonInventoryRet;
qbItem.Id = itemNonInventory.ListID.GetValue();
qbItem.Name = itemNonInventory.Name.GetValue();
qbItem.ItemType = ItemTypes.NonInventory;
break;

case ENORItemRet.orirItemOtherChargeRet:
var itemOtherCharge = itemRet.ItemOtherChargeRet as IItemOtherChargeRet;
qbItem.Id = itemOtherCharge.ListID.GetValue();
qbItem.Name = itemOtherCharge.Name.GetValue();
qbItem.ItemType = ItemTypes.Other;
break;

case ENORItemRet.orirItemSalesTaxRet:
var itemSalesTax = itemRet.ItemSalesTaxRet as IItemSalesTaxRet;
qbItem.Id = itemSalesTax.ListID.GetValue();
qbItem.Name = itemSalesTax.Name.GetValue();
qbItem.ItemType = ItemTypes.SalesTax;
break;

case ENORItemRet.orirItemSalesTaxGroupRet:
var itemSalesTaxGroup = itemRet.ItemSalesTaxGroupRet as IItemSalesTaxGroupRet;
qbItem.Id = itemSalesTaxGroup.ListID.GetValue();
qbItem.Name = itemSalesTaxGroup.Name.GetValue();
qbItem.ItemType = ItemTypes.SalesTaxGroup;
break;
}

return qbItem;
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com