2014-09-15 4 views
-1

타사 API를 사용 중이며 프로그래밍에 익숙하므로 몇 가지 지침이 필요합니다.C# Null 개체 참조 오류

내가

InStreamInfo _info=new InStreamInfo(); 
    _info.Comments="Test Comment"; 
    _info.Dimention= "200x300"; 
    _info.Names="Test Names 1"; 

InStreamAdditionalInfo[] 동안으로 InStreamInfo의 클래스 객체를 생성하고

ID 
AddInfoDescription 

Comments 
Dimention 
Names 
InStreamAdditionalInfo[] 

InStreamAdditionalInfo[] 클래스는 속성을 정의한 속성을 가진 클래스 InStreamInfo있다 이다 def 이네 여기

InStreamAdditionalInfo[] _infoAdd= new InStreamAdditionalInfo[1]; 

_infoAdd[0].ID=12345; 

그러나 나는 오류를 얻고있다

개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

+2

Null 참조는 항상 동일한 것입니다. 값이 null 인 객체의 속성에 액세스하려고합니다. 해당 링크를 확인하면 예외를 얻을 수있는 모든 가능한 방법과이를 복구하는 방법이 표시됩니다. – paqogomez

+1

P. 객체 배열을 인스턴스화하면 배열이 채워 졌음을 의미하지 않습니다. – paqogomez

+0

나는 링크를 보았지만 혼란 스러울 정도로 많은 것들을 가지고있다. 내 솔루션에서 내가 뭘 잘못하고 있는지 말해 줄 수 있니? – user3754674

답변

1

하나의 위치로 배열을 만들고 있지만이 단일 위치의 배열은 null입니다. _infoAdd[0]을 초기화해야합니다. 이 같은 것

_infoAdd[0] = new InStreamAdditionalInfo(); 
_infoAdd[0].ID=12345; 

컬렉션의 크기를 정의하는 데 C#에서는 일반적이지 않습니다. 특별한 이유가 없다면 필요할 때 자동으로 크기를 늘리는 컬렉션을 사용할 수 있습니다. 이것은 예제입니다

var _infoAdd= new List<InStreamAdditionalInfo>(); 
_infoAdd.Add(new InStreamAdditionalInfo { ID = 12345 }); 
+0

@JeremyThompson : 이해가 안 돼요 ... –

+2

Deja vu. 연속적으로 우리는 여기서 또 다른 ObjectRefNotSetToAnInstance 예외를 보면서 자신을 발견하게됩니다. btw 나는 downvote하지 않았다. 그러나 미래에 아마 우리는 복제물 (이 매우 일반적인 예외를 진단하는 사람들을위한 모든 정보를 가지고있다)에 대한 링크로이 질문들을 마무리한다. –

+0

@Jeremy Thompson : 그의 혼란은 컬렉션이 초기화되는 방법에 관한 것이라고 생각합니다.이 오류에 대한 일반적인 참조가 도움이되지는 않는다고 생각합니다. 그는 컬렉션을 초기화하면 자동으로 각 인스턴스를 새 인스턴스로 초기화한다고 생각합니다. –