• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:クラス)

VB.NET学習中に構造体とクラスライブラリの違いによるエラーに遭遇しました

このQ&Aのポイント
  • VB.NET学習58日目の初学者が、構造体の演習中にエラーに遭遇しました。具体的には、クラスライブラリと構造体の違いにより、Nullエラーが回避できませんでした。
  • 質問者は、VB.NETのBLoad関数を作成し、クラスライブラリと構造体の両方で使用していましたが、構造体では問題なく動作しましたが、クラスライブラリではNullエラーが発生しました。
  • このエラーについて教えてほしいとのことです。また、構造体とクラスライブラリの違いについても教えてほしいとのことです。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

T1などTEST1クラスのオブジェクトが Nothingかどうかを判別しましょう   ' T1 = CType(BLoad("D:\Temp\T3.BIN"), TEST1)   T1 = BLoad("D:\Temp\T3.BIN")   ' でいいと思いますよ   ' TEST1以外をデシリアライズしてきた場合は   ' 代入のエラーになるので Try/Catchで対応かと   If T1 IsNot Nothing Then ' Null エラーが回避できない!    Debug.Print(T1.Member1) # 2003以前なら   If not (T1 Is Nothing) Then ' Null エラーが回避できない! といった具合です BLoadやBSaveを TEST1クラスの Sharedメソッドとして実装したほうがいいかもしれませんよ

noname#140971
質問者

お礼

侍ジャパンを見ながら BLOAD、BSAVE を作成。 「NULL だから ISNOT NULL の要領かなー?」と思いましたが・・・。 結局は、悉く失敗。 回答の如くで成功しました。 >BLoadやBSaveを TEST1クラスの Sharedメソッドとして実装したほうがいいかもしれませんよ! クラスライブラリは12、3年前に一度だけ作ったことがあるだけ。 で、構造体=>ファイルアクセス=>クラスライブラリと攻める予定です。 が、構造体とクラスとが余りにも表向きが一緒なものでチト踏み込んだ次第です。 アドバイスの<Sharedメソッドとして実装>の意味は皆目わかりませんが是非に挑戦したいと思います。

関連するQ&A

専門家に質問してみよう