2009-08-13 9 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

それがヌルかどうかをどうやって確認できますか? – Cyclone

+0

SavedClipsが何もない場合 Else 終了場合 – Gregoire

+0

これが完成しました。ありがとう! – Cyclone

2

明らかに、My.Settings.SavedClipsはまだNothingに設定されています。

+0

意味がありますが、 ".Add(" ")'行に誤りがあります。 )。 – Thorarin

1

SavedClipsは通常のnullです(VBでは何もありません)。 「My.Settings.SavedClipsは何もありません」のチェックを含めます。それが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コメントを使用したいですVisual Studioがより優れたインテリセンスのヘルプを提供できるようにします。
    • IsDBNull()は、あなたが思うとは思っていません。
    • はい、あなたはforループを使うべきですが、あなたはすでに私がwhileループを残しているとコメントしています。
  • +0

    私は実際に関数を意味し、私は残りのコードで数回呼び出します。 XMLのコメントを使用しても問題ありません。 私はすでに別のコードで宣言されていました。助けてくれてありがとう! – Cyclone

    +0

    値を返さない場合は、 'Sub'を入力してください。 –

    +0

    大丈夫です。値を返さないとコードが動作しないようにできますか? – Cyclone

    関連する問題