C#의 새로운 기능인 StackOverflow에 새로 추가되어 프로그래밍에 새로운 기능이 추가되었습니다. 여기에 내가 if 문에 null 참조 예외가 코드null 값 확인 C#
if (matchDetails.result.players[0].ab_up.Count() != null)
{
/* Do stuff */
}
입니다. Console.WriteLine으로 테스트했습니다 :
Console.WriteLine(matchDetails);
Console.WriteLine(matchDetails.result);
Console.WriteLine(matchDetails.result.players);
Console.WriteLine(matchDetails.result.players[0]);
Console.WriteLine(matchDetails.result.players[0].account_id);
Console.WriteLine(matchDetails.result.players[0].ab_up);
Console.WriteLine(matchDetails.result.players[0].ab_up[0]);
그리고 마지막 Console.WriteLine에서 Null 참조 예외가 있습니다.
if의 전체적인 점은 null ref 예외를 피하는 것이 었습니다. 내가 어디로 잘못 가고 있니? 필요한 경우 더 많은 코드를 제공 할 수 있습니다. 많은 관련성없는 코드를 게시하고 싶지 않았습니다. 귀하의 도움에 미리 감사드립니다.
정확한 null 값의 정확한 위치를 편집했습니다. 당신은 함수 결과 count()
1에 널 (null)을 검사하고
if (matchDetails.result.players [0] .ab_up [0]! = null)'또는 C# 6.0을 기다리고'matchDetails? .result? .players [0]? ab_up [ 0] ?. Count()' – Habib
'matchDetails'가 null 인 경우 여기에 NullReferenceException이 발생합니다. 'matchDetails.result'가 null이거나'matchDetails.result.players'가 null이거나'matchDetails.result.players [0]'이 null이거나'matchDetails.result.players'가 null 인 경우 하나를 얻습니다. [0] .ab_up'은 null입니다. '! = null' 체크는 항상'true'입니다. 왜냐하면'Count()'가'int'를 반환하기 때문입니다. 값 유형으로 null이 될 수 없습니다. – phoog