Visual Basic 9.0 って、どんなんかーなぁー♪ その1。- Implicitly Typed Local Variables -
今回は Object and Array Initializers についてです。
前回も登場のこのクラスがあったとして、
Public Class WankumaMember
Private _id As Integer
Public Property ID() As Integer
Get
Return _id
End Get
Set(ByVal value As Integer)
_id = value
End Set
End Property
Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
End Class
Object Initializer な機能を使用すると、
Dim torikobito As New WankumaMember With {.ID = 76, .Name = "とりこびと"}
どうやらこういうこと(?)らしいです。
なるほどなるほど・・・。インスタンスの生成時にプロパティとかフィールドに値を設定できるわけですね。見た目もそれっぽいですし、キーワードもWithです。んでもって
Visual Basicで '{}' ですか!?w
もちろん前回の型推論と併用して、
Dim torikobito = New WankumaMember With {.ID = 76, .Name = "とりこびと"}
こんな感じでできるらしいです。
で、コレだけで終わらないのですよ。Object and Array Initializers ですから!「Array Initializerってなんですか?」ってことですが、
Dim members = { _
New WankumaMember With {.ID = 12, .Name = "επιστημη"}, _
New WankumaMember With {.ID = 28, .Name = "アクア"}, _
New WankumaMember With {.ID = 33, .Name = "刈歩 菜良"}, _
New WankumaMember With {.ID = 51, .Name = "ぽぴ王子"}, _
New WankumaMember With {.ID = 76, .Name = "とりこびと"} _
}
こんな感じです。WankumaMenber の配列 Members の初期化がこう↑なるそうです。
でもこれ・・・
Option Strict Off じゃないとダメっぽい・・・?
んでもってMembers はObject型の配列に・・・。orz
# 型指定できる Array Initializer な書き方がいいです。