2013-01-23 43 views
2

我試圖用一個漂亮的附近物體設定,但具有空的問題。處理的對象制定者空對象

我現在代碼:

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 
}; 

但是... '總金額' 可能爲空。所以,我得到錯誤。

是否有來處理這一個整潔的方式,因此,如果「總金額」爲空,然後設置chargevalue爲零?

回答

3

怎麼樣三元運算符,檢查,看看是否總量爲null。如果不是,那麼使用它的amount,否則爲0

ChargeValue = (reply.refundResponse.transactionDetails.totalAmount != null) ? reply.refundResponse.transactionDetails.totalAmount.amount : 0, 
2

你可以做,例如:

ChargeValue = reply.refundResponse.transactionDetails.totalAmount != null ? reply.refundResponse.transactionDetails.totalAmount.amount : 0 
0

像這樣的事情?

ChargeValue = (null == reply.refundResponse.transactionDetails.totalAmount) 
    ? 0 
    : reply.refundResponse.transactionDetails.totalAmount.amount 
1

三元運算符來救援!

ChargeValue = totalAmount ? totalAmount.amount : 0;

+0

+1的提醒操作者的正確名稱的:-) – Bridge

+0

... ....... :) .......... –

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 
};