Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
初級講座46 クラスの作成でコンストラクタ変数宣言
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9541#CommentId14134
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2010/2/6 20:04:49
> 右側の Folder は、おそらく
> コンストラクタ呼び出し側で指定した
> Dim Commander As New DownloadCommander(Folder, LogFileName)
> の Folder だと思います。
その認識で正しいですよ。
> Me.FolderName は、何を表しているでしょうか?
御明察のとおり、
> Me.FolderName が、クラス定義の最初で宣言している
> Public FolderName As String
にあたります。
> であるならば、
> Private FolderName As String
> と宣言しても差し支えない様に思います。
> Public でなければならない理由がよくわかりません。
動作上は、Private でも問題ありません。Public にした場合には、呼び出し側で
MsgBox( Commander.FolderName )
Commander.FolderName = Folder2
などとして、ダウンロード前にフォルダを変更することもできます。
もしも DownloadCommander クラスにおいて、外部から変数の内容を変更されないようにするなら、
Public
ReadOnly
FolderName
As
String
とすることで、読み取り専用のフィールドとすることもできます。
> 外部から直接、FolderName を操作している箇所がある様に思います。
> それはどこでしょうか?
リスト13がそれにあたります。もし、このフィールドが Private な場合、
利用側はリスト12の書き方をすることになります。