投稿者 特急まっさーの父@初心者  (社会人) 投稿日時 2010/2/6 19:41:16
はじめまして。
クラス学習初心者、特急まっさーの父です。
お世話になります。


以下、コンストラクタの内部、コンストラクタを呼び出す側で、
引数のやりとりがどうなっているのか
ご教示下さい。


http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard46.htm
にて、下記リスト10、リスト11が質問対象です。



■リスト10:DownloadCommanderクラスのプログラム。コンストラクタの実装。

Public Class DownloadCommander

 (中略)
    Dim wc As Net.WebClient = New Net.WebClient()

    Public FolderName As String
    Public LogFileName As String

    '■コンストラクタ
    ''' <param name="Folder">ダウンロードしたファイルの保存先フォルダ</param>
    ''' <param name="LogFile">ダウンロード履歴を記録するファイル</param>
    Public Sub New(ByVal Folder As String, ByVal LogFile As String)

        Me.FolderName = Folder
        Me.LogFileName = LogFile

    End Sub
 (後略)



■リスト11:フォーム側のプログラム。新しいコンストラクタとDownloadメソッドの呼び出し。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 (中略)

    Dim Commander As New DownloadCommander(Folder, LogFileName)

    Commander.Download(URL)

 (後略)



この、リスト10の
        Me.FolderName = Folder
がよくわからないのです。


右側の Folder は、おそらく
コンストラクタ呼び出し側で指定した
    Dim Commander As New DownloadCommander(Folder, LogFileName)
の Folder だと思います。

Me.FolderName は、何を表しているでしょうか? 

Me.FolderName が、クラス定義の最初で宣言している

   Public FolderName As String
であるならば、
  Private FolderName As String
と宣言しても差し支えない様に思います。
Public でなければならない理由がよくわかりません。

Public でないといけないとすれば、
外部から直接、FolderName を操作している箇所がある様に思います。
それはどこでしょうか?

(説明は、FolderName についてさせて頂きましたが、
 LogFileについても全く同じです)

以上、宜しくお願いいたします。