gpt4 book ai didi

c# - 简化IF语句逻辑——内部逻辑重叠

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:28 25 4
gpt4 key购买 nike

可以简化以下逻辑 if 条件吗?我写了这段代码,但有些部分是重叠的,所以我想寻求一些帮助,看看它是否可以简化......

我实际上有三个不同的字段,但遵循相同的模式。

编辑:

    if (Row.ReceivableAmount_IsNull == true && Row.CustomerID == LastCustomerID)
{
if (LastReceivableAmount == null)
{
Row.PreviousReceivableAmount_IsNull = true;
}
else
{
Row.PreviousReceivableAmount = LastReceivableAmount.GetValueOrDefault();
}
}
else
{
Row.PreviousReceivableAmount = LastReceivableAmount.GetValueOrDefault();
LastReceivableAmount = Row.ReceivableAmount;
}

if (Row.SaleAmount_IsNull == true && Row.CustomerID == LastCustomerID)
{
if (LastSaleDate == null)
{
Row.PreviousSaleDate_IsNull = true;
}
else
{
Row.PreviousSaleDate = LastSaleDate.GetValueOrDefault();
}
}
else
{
if (LastSaleDate == null)
{
Row.PreviousSaleDate_IsNull = true;
}
else
{
Row.PreviousSaleDate = LastSaleDate.GetValueOrDefault();
}

LastSaleDate = Row.Date;
}

if (Row.PaymentAmount_IsNull == true && Row.CustomerID == LastCustomerID)
{
if (LastPaymentDate == null)
{
Row.PreviousPaymentDate_IsNull = true;
}
else
{
Row.PreviousPaymentDate = LastPaymentDate.GetValueOrDefault();
}
}
else
{
Row.PreviousPaymentDate = LastPaymentDate.GetValueOrDefault();
LastPaymentDate = Row.Date;
}

最佳答案

是的,您只关心外部 if 条件中的 LastSaleDate,因此将其他所有内容移出。

将其移出后,您可以反转原始条件,将 if/else 减少为 if。

if (LastReceivableAmount == null)
{
Row.PreviousReceivableAmount_IsNull = true;
}
else
{
Row.PreviousReceivableAmount = LastReceivableAmount.GetValueOrDefault();
}
if (!Row.ReceivableAmount_IsNull || Row.CustomerID != LastCustomerID)
{
Row.PreviousReceivableAmount = LastReceivableAmount.GetValueOrDefault();
LastReceivableAmount = Row.ReceivableAmount;
}


if (LastSaleDate == null)
{
Row.PreviousSaleDate_IsNull = true;
}
else
{
Row.PreviousSaleDate = LastSaleDate.GetValueOrDefault();
}
if (!Row.SaleAmount_IsNull || Row.CustomerID != LastCustomerID)
{
LastSaleDate = Row.Date;
}


if (LastPaymentDate == null)
{
Row.PreviousPaymentDate_IsNull = true;
}
else
{
Row.PreviousPaymentDate = LastPaymentDate.GetValueOrDefault();
}
if (!Row.PaymentAmount_IsNull == true || Row.CustomerID != LastCustomerID)
{
Row.PreviousPaymentDate = LastPaymentDate.GetValueOrDefault();
LastPaymentDate = Row.Date;
}

关于c# - 简化IF语句逻辑——内部逻辑重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32892499/

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