[UserInfo【Myクラスにあたるもの】]
Public Class UserInfo
Public Shared myMachine As Machine
Public Shared myName As Person
End Class
[Machine【My.ComputerのComputerにあたるもの】]
Public MustInherit Class Machine
'<変数>
Private Shared _IpAdrress As String 'IPアドレス
Private Shared _HostName As String 'マシン名
'<プロパティ>
'*** 読み取り専用 ***
'--- IPアドレス ---
Public Shared ReadOnly Property IpAdress() As String
Get
Return _IpAdrress
End Get
End Property
'--- マシン名 ---
Public Shared ReadOnly Property HostName() As String
Get
Return _HostName
End Get
End Property
'<メソッド>
'*** 一括で情報をセットします ***
Public Shared Sub SetmachineInfo()
_IpAdrress = Net.Dns.GetHostEntry(Net.Dns.GetHostName).AddressList(0).ToString
_HostName = Net.Dns.GetHostName
End Sub
End Class
[Person【My.UserのUserにあたるもの】]
Public Class Person
'<変数>
Private Shared _Name As String '名前
Private Shared _Country As String '出身国
Private Shared _Year As UShort '年齢
'<プロパティ>
'*** 読書OK ***
'--- 名前 ---
Public Shared Property Name() As String
Get
Return _Name
End Get
Set(ByVal value As String)
_Name = value
End Set
End Property
'--- 出身国 ---
Public Shared Property Country() As String
Get
Return _Country
End Get
Set(ByVal value As String)
_Country = value
End Set
End Property
'--- 年齢 ---
Public Shared Property Year() As UShort
Get
Return _Year
End Get
Set(ByVal value As UShort)
_Year = value
End Set
End Property
End Class
[使用例()]
Public Class TestForm
Private Sub TestForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'最初にマシン情報を取得します
Call UserInfo.myMachine.SetmachineInfo() ' <--- エラーが発生
Call Machine.SetmachineInfo() ' <--- 直接クラスを指定すると大丈夫
'画面に表示します
Label1.Text = UserInfo.myMachine.IpAdress ' <--- エラーが発生
Label2.Text = UserInfo.myMachine.HostName ' <--- エラーが発生
Label1.Text = Machine.IpAdress ' <--- 直接クラスを指定すると大丈夫
Label2.Text = Machine.HostName ' <--- 直接クラスを指定すると大丈夫
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'入力情報でセットします
UserInfo.myName.Name = TextBox1.Text ' <--- エラーが発生
UserInfo.myName.Country = TextBox2.Text ' <--- エラーが発生
UserInfo.myName.Year = TextBox3.Text ' <--- エラーが発生
Person.Name = TextBox1.Text ' <--- 直接クラスを指定すると大丈夫
Person.Country = TextBox2.Text ' <--- 直接クラスを指定すると大丈夫
Person.Year = TextBox3.Text ' <--- 直接クラスを指定すると大丈夫
End Sub
End Class
|