- PR -

「オブジェクト参照がオブジェクト インスタンスに設定されていません。」に関して

1
投稿者投稿内容
未記入
会議室デビュー日: 2007/05/18
投稿数: 3
投稿日時: 2007-05-18 11:51
上記エラーについて質問させて下さい。

変数の初期化をせずに参照した場合、上記エラーとなることが
ありますでしょうか?

このような感じで使用した場合。
--
Public Class XXXXX
Public Shared DEFAULT_STRING As String
End Class

Public Class YYYYY
Private sub AAAA(ByVal strBBBB As String)
if strBBBB = DEFAULT_STRING then ← エラーになることがありますか?
End If
End Sub
End Class
--

また、エラーとなる可能性がある場合、

Public Shared DEFAULT_STRING As String = ""

とすることで回避可能でしょうか?

初歩的な質問で申し訳ございませんが、よろしくお願いします。
KI
大ベテラン
会議室デビュー日: 2007/01/10
投稿数: 239
投稿日時: 2007-05-18 11:55
引用:

変数の初期化をせずに参照した場合、上記エラーとなることが
ありますでしょうか?


何を聞かれているのかよくわかりません。
エラーとなるかどうかは、ご自分でやってみればわかるのでは?

「こういうエラーとなるのはなぜでしょうか?」とか
「こういうエラーとなるので回避方法を教えてください。」とかなら
まだ答えようがあるのですが。
未記入
会議室デビュー日: 2007/05/18
投稿数: 3
投稿日時: 2007-05-18 12:21
回答ありがとうございます。

言葉足らずで申し訳御座いません。
このエラーが一度だけ発生し、同じデータで再度実行したら
エラーが発生しなかったため、原因が特定出来ず中途半端な
書込みになってしまいました。
(24時間稼動のシステムで1ヶ月稼動していて1度だけ発生)
(シングルスレッドで処理している)

過去の書込み等を調べこの例外が発生する可能性がありそうな
部分が他に見当たらなかったため、この例外が発生する可能性が
あるかどうかという質問をさせて頂きました。

過去に同様の経験がある、また原因を究明するためにこういった
エラー処理を追加したらいい等情報を頂けたらと思います。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2007-05-18 12:27
引用:

if strBBBB = DEFAULT_STRING then ← エラーになることがありますか?


この行だと断定した理由はなんでしょうか?
If 文の中は何もないのですか?
_________________
囚人のジレンマな日々
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2007-05-18 12:32
あ、断定していないですね。
提示された行でエラーになる事はないので、原因は If 文の中のどっかの処理だと。
_________________
囚人のジレンマな日々
KI
大ベテラン
会議室デビュー日: 2007/01/10
投稿数: 239
投稿日時: 2007-05-18 12:47
状況は理解しました。

このフォーラムで回答する人はボランティアのようなものですから、
余計な手間を取らせないためにも、
自分で調べられること、実験できることは
質問する前にやってもらいたいのです。
そう考えて、質問の書き方が少し気になったので注意させて頂きました。

本題の方ですが…
String 型変数の「=」演算子による比較だけで
その例外(NullReferenceException)が発生することはないはずです。

原因は別の部分と思われます。
一般に、ある参照型の変数が Nothing の状態で、
その変数を通してクラスのメンバにアクセスしようとしたときに、
NullReferenceException は発生します。
メンバを参照する「.」を使っている部分で、
「.」の前にあるオブジェクトが Nothing である可能性はないかを
確認してみるとよいと思います。

コード:
Dim s As String = Nothing
Dim i As Integer = s.IndexOf("A")	'ここで NullReferenceException が発生

未記入
会議室デビュー日: 2007/05/18
投稿数: 3
投稿日時: 2007-05-18 12:53
回答ありがとう御座います。

お二人の意見を参考にさせて頂き、再度調査したいと思います。
進展がありましたら報告させてもらいます。

質問の書き方も今後は注意します。
1

スキルアップ/キャリアアップ(JOB@IT)