2013-01-23 6 views
2

가까운 개체 설정 도구를 사용하려고하지만 null 문제가 있습니다. 지금개체 설정자의 null 개체 처리

내 코드 :

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는'널 (null) 일 수 있습니다. 따라서 오류가 발생합니다.

'totalAmount'가 null 인 경우 chargevalue를 0으로 설정할 수 있도록 깔끔한 방법이 있습니까?

답변

3

총계가 null인지 확인하는 3 진 연산자는 어떻습니까? 그렇지 않은 경우 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

구조에 대한 3 자 연산자!

ChargeValue = totalAmount ? totalAmount.amount : 0;

+0

일을 – 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 
};