Animalクラスの名前(Name)プロパティですが、名前って一つじゃない場合もありますね。
あだ名もありますし。
今回は、プロパティをインデックス付きに変更してみます。
元のプロパティ。
10 Private _name As String
11 Public Property Name() As String
12 Get
13 Return _name
14 End Get
15 Set(ByVal value As String)
16 If value <> "" Then
17 _name = value
18 Else
19 WriteLine("名前をつけてください")
20 End If
21 End Set
22 End Property
インデックス付きに変更後。
10 Private _name(2) As String
11 Public Property Name(idx As Integer) As String
12 Get
13 Return _name(idx)
14 End Get
15 Set(ByVal value As String)
16 If value <> "" Then
17 _name(idx) = value
18 Else
19 WriteLine("名前をつけてください")
20 End If
21 End Set
22 End Property
使用するメソッドも変更します。インデックスの数分処理するように、For Eachを使ってます。
24 Sub WhatIsThis() 25 WriteLine( _classname & "です") 26 For Each m As String in _name 27 WriteLine( "名前は" & m & "と言います") 28 Next 29 End Sub
名前を3つつけてみました。
32 Public Class TestClass 33 <STAThread()> _ 34 Shared Sub Main() 35 Dim animal As New Animal() 36 animal.Name(0) = "動物ちゃん" 37 animal.Name(1) = "動物くん" 38 animal.Name(2) = "動物さん" 39 animal.WhatIsThis() 40 End Sub 41 42 End Class
ビルドして実行。
takk@deb9:~/vbtest$ vbnc test.vb ~省略~ takk@deb9:~/vbtest$ mono test.exe 哺乳類です 名前は動物ちゃんと言います 名前は動物くんと言います 名前は動物さんと言います takk@deb9:~/vbtest$


コメント