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$
コメント