2009-08-13 2 views
0

저는 알고 있습니다. for 루프를 사용할 수 있었지만, 그것에 대해 아무것도 말하지 않았습니다. 도와주세요!개체 참조가 개체의 인스턴스로 설정되지 않았습니다. (완전히 깨졌습니다?) vb.net

Private Function LoadSaved() ''//Loads saved clippings if the user wants us to 
     Dim ZomgSavedClips As StringCollection 
     If IsDBNull(My.Settings.SavedClips) = False Then ''//If it is null this would return a rather ugly error. Dont want that do we? 
      ZomgSavedClips = My.Settings.SavedClips ''//ZomgSavedClips name was a joke, I just felt like it. 
      ZomgSavedClips.Add(" ") ''//This line ought to fix the error, but doesnt 
      i = 0 
      While i < ZomgSavedClips.Count ''//This is where the error occurs 
       ClipListings.Rows.Add(ZomgSavedClips(i)) 
       i = i + 1 ''//First time I wrote this function I forgot this line. Crashed mah comp. Fail. 
      End While 
     End If 
    End Function 

While i < ZomgSavedClips.Count이 도청되는 라인은 내가 .count가 null 반환해야 함을 알고 있지만 난 그냥 정지 텍스트의 빈 조각을 추가했다. 이걸로 뭐야? 실제 텍스트를 추가해야합니까?

+0

항상 그런 식으로 코드에 주석을 달았습니까? : P – Thorarin

+0

아니 롤, 나중에 소스를 판매 계획, 그리고 그것을 구입하는 사람들은 VB에 대해 너무 많이 모르는다고 가정합니다. – Cyclone

+0

특히 나는 당신이 유용한 코멘트로 자신을 제한하는 것이 좋습니다. 나는 어리석은 농담을하는 경향이있다. 그러나 매우 전문적이지는 않다. :) – Thorarin

답변

3

SavedClips가 null입니까? null 인 경우 테스트를 통과 할 수 있습니다. IsDBNull beacuse 둘 다 동일하지 않습니다.

+0

null인지 확인하려면 어떻게해야합니까? – Cyclone

+0

SavedClips가 아무것도 아닌 경우 Else 끝 부분 – Gregoire

+0

알립니다. 감사! – Cyclone

2

분명히 My.Settings.SavedClips은 여전히 ​​Nothing으로 설정됩니다.

+0

의미가 있지만, ".Add (" ")'줄에 오류가있을 것이다.). – Thorarin

1

SavedClips는 일반적으로 'null'입니다 (VB에서는 없음). "My.Settings.SavedClips is nothing"에 대한 체크를 포함하십시오. 그것이 true로 평가되면 함수를 그대로 두십시오.

0

나는 그것을 막기 위해 빈 텍스트를 추가하기까지했습니다.

당신이 한 모든 것은 오류가 발생한 곳입니다. null/Nothing 개체에 .Add()을 호출 할 수 없습니다. 이 코드에

'''<summary>Loads saved clippings if the user wants us to</summary>' 
Private Sub LoadSaved() ''//Loads saved clippings if the user wants us to 
    ''//Load saved clips into memory 
    Dim ZomgSavedClips As StringCollection = My.Settings.SavedClips 
    If ZomgSavedClips Is Nothing Then ZomgSavedClips = New StringCollection() 

    ''//Apply loaded clips to visible listings 
    Dim i As Integer 
    While i < ZomgSavedClips.Count '' 
     ClipListings.Rows.Add(ZomgSavedClips(i)) 
     i += 1 
    End While 
End Sub 

일부 노트 : 당신이 다른 사람에게이 코드를 판매 할 것이기 때문에 당신이 Sub

  • 을 의미 할 때

    • Function를 사용하지 마십시오, 당신은에서 XML 주석을 사용하려면 top을 사용하면 Visual Studio에서 인텔리 센스를 향상시킬 수 있습니다.
    • IsDBNull()은 사용자가 생각하는대로 처리하지 않습니다.
    • 네, for 루프를 사용해야합니다.하지만 이미 당신이 우리에게 보여주지 않은 코드가 더 있다는 가정하에 while 회 돌이를 남겼습니다.
  • +0

    저는 실제로 함수를 의미했습니다. 나머지 코드에서는 여러 번 호출합니다. 잘 사용하면 XML 메모를 사용해도 괜찮습니다. 이미 다른 코드로 선언되었습니다. 도와 주셔서 감사합니다! – Cyclone

    +0

    값을 반환하지 않으면 'Sub'를 입력하십시오. –

    +0

    괜찮습니다. 값을 반환하지 않으면 코드가 작동하지 않을 수 있습니까? – Cyclone

    관련 문제