• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エラーの理由が分りません。Private' であるため…?)

エラーの理由が分りません。Private' であるため…?

このQ&Aのポイント
  • データを構造体で管理したいと思って、class testclassというクラスを作成しました。それをtest2clsssで使うと思っているのですが、次のようなエラーが出ます
  • 'testclass.code' は 'Private' であるため、このコンテキストではアクセスできません。
  • subをPublicにしても同じエラーが出ています。エラーの意味・原因は何で、どうすれば修正できるのでしょうか?

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

  • ベストアンサー
回答No.1

'>subをPublicにしても 'あ、見ている場所そのものが違います。直すのはtestclassの方です '僕自身はメンバ変数自体は全てProtectedかPrivateにして, 'Publicなプロパティを作るのが好みです。 Public Class testclass Private testclasscode As String 'メンバにおいてはPrivateと書いたのと同じだった。 Public Property Code As String Get return testclasscode End Get Set(value As String) testclasscode = value End Set End Property End Class Public Class test2class public Shared Sub Main() Dim x As test2class = New test2class() End Sub Private Sub testsub() Dim test As testclass = new testclass() test.code = "data" End Sub End Class ====================================== #人によっては 「代入と同時に何か処理を行なったりするのでなければ,記述が煩雑なだけで何も益がない」としてこういう書き方を好む人もいます。僕はメンバ変数をPublicにするのは嫌いですが。 Public Class testclass Public code As String 'メンバ自体をPublicにする。 End Class Public Class test2class Public Shared Sub Main() Dim x As test2class = New test2class() End Sub Public Sub New() testsub() End Sub Private Sub testsub() Dim test As testclass = new testclass() test.code = "data" End Sub End Class

muuuuu
質問者

お礼

ありがとうございます。 てっきり利用している側に問題があると思い込んでました。 この部分だけで3時間も悩んでいました。 気分すっきりです。 ありがとうございます。 プログラムの書き方は悩ましいですね。 試行錯誤しながら書いています。