Nullについてのエラー への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 shu  (社会人)
投稿日時
2012/6/14 17:16:41
Dim g~
g.Drawing~
の間にgに何かインスタンスを代入しましょう。
g.Drawing~
の間にgに何かインスタンスを代入しましょう。
投稿者 VB初心者  (学生)
投稿日時
2012/6/14 16:30:42
学校でVBのプログラムの勉強をしています.
作成しているプログラムなんですが,
・
・
Dim g As Drawing.Graphics
g.DrawLine(drawpen, ixx1, iyy1, ixx2, iyy2) ←ここに変数 'g' は、値が割り当てられる前に使用されています。Null 参照の例外が実行時に発生する可能性があります。
・
・
とエラーが出ます.
どなたか教えていただけないでしょうか?
null refarence exceptionはハンドルされませんでした.とでています.
作成しているプログラムなんですが,
・
・
Dim g As Drawing.Graphics
g.DrawLine(drawpen, ixx1, iyy1, ixx2, iyy2) ←ここに変数 'g' は、値が割り当てられる前に使用されています。Null 参照の例外が実行時に発生する可能性があります。
・
・
とエラーが出ます.
どなたか教えていただけないでしょうか?
null refarence exceptionはハンドルされませんでした.とでています.
インスタンスがない状態でメソッドやプロパティを使用するとNullReferenceExceptionが発生します。
たとえば、次の例ではStringクラスのインスタンスがない状態でLengthプロパティを使おうとしているのでNullReferenceExceptionが発生します。
GraphicsクラスのDrawLineメソッドもそうです。
インスタンスをどのように取得するかの方法はさまざまです。よく見かけるのはNewを使用する方法ですが、今回はNewの出番はありません。
このあたりの事情は以下の記事で解説しているので参考にしてください。
初級講座第5回 メソッドと関数
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard5.htm
初級講座第9回 クラスの使い方
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard9.htm
今回の例を簡単に解決する例を紹介します。
この例はPictureBox1に対して描画を行う場合です。
これでインスタンスの問題は解決しますが、グラフィックのセオリーからははずれています。
セオリーではPaintイベントで描画を実行することになっておりその場合は次のようにします。