C# 在对象设置器中处理空对象
我试图使用一个很好的近对象设置器,但有空的问题 我现在的代码:C# 在对象设置器中处理空对象,c#,C#,我试图使用一个很好的近对象设置器,但有空的问题 我现在的代码: var Result = new RefundReplyObject { AuthorisationNumber = reply.refundResponse.transactionDetails.authorisationNumber, ChargeValue = reply.refundResponse.transactionDetails.totalAmount.amount, Message = r
var Result = new RefundReplyObject
{
AuthorisationNumber = reply.refundResponse.transactionDetails.authorisationNumber,
ChargeValue = reply.refundResponse.transactionDetails.totalAmount.amount,
Message = reply.refundResponse.transactionDetails.message,
ReconciliationReference = reply.refundResponse.transactionDetails.reconciliationReference,
SettlementDate = reply.refundResponse.transactionDetails.settlementDate,
Status = TransactionStatusToLocalModel(reply.refundResponse.transactionDetails.status),
TransactionReference = reply.refundResponse.transactionDetails.transactionReference
};
但是……”“totalAmount”可能为空。所以,我得到了错误
是否有一种简洁的方法来处理此问题,以便在“totalAmount”为空时,将chargevalue设置为零?您可以这样做,例如:
ChargeValue = reply.refundResponse.transactionDetails.totalAmount != null ? reply.refundResponse.transactionDetails.totalAmount.amount : 0
像这样的
ChargeValue = (null == reply.refundResponse.transactionDetails.totalAmount)
? 0
: reply.refundResponse.transactionDetails.totalAmount.amount
三元运算符如何,它检查总量是否为空。如果不是,则使用它的
金额
,否则为0
ChargeValue = (reply.refundResponse.transactionDetails.totalAmount != null) ? reply.refundResponse.transactionDetails.totalAmount.amount : 0,
三元操作员来营救
ChargeValue=总金额?合计金额:0代码>您将无法在设置器端执行此操作,因为在您到达设置器之前就发生了异常。通过执行以下操作,您可以获得您想要的(并在过程中彻底清理代码):
var trans = reply.refundResponse.transactionDetails;
var Result = new RefundReplyObject
{
AuthorisationNumber = trans.authorisationNumber,
ChargeValue = trans.totalAmount == null ? 0 : trans.totalAmount.amount,
Message = trans.message,
ReconciliationReference = trans.reconciliationReference,
SettlementDate = trans.settlementDate,
Status = TransactionStatusToLocalModeltrans.status),
TransactionReference = trans.transactionReference
};