方法 : 匿名型のインスタンスを宣言する
更新 : 2007 年 11 月
匿名型を使用すると、データ型のクラス定義を記述せずにオブジェクトを作成できます。代わりに、コンパイラによってクラスが作成されます。データ型の名前が指定されないため、この型は匿名型と呼ばれます。
匿名型のインスタンスを宣言するには、プロパティを指定する初期化リストを使用します。インスタンスの名前、各プロパティの名前、および各プロパティの初期値を指定し、各プロパティがキー プロパティかどうかを示します。
宣言
匿名型のインスタンスを宣言するには
Dim ステートメントを As 句を省略して記述します。
Dim instanceName
同じステートメントで、instanceName に型のプロパティのリストを割り当てます。リストは中かっこで囲み、その前にキーワード New With を付けます。
Dim instanceName = New With {<property names and initial values>}
新しいプロパティごとに、名前の先頭にピリオドを付け、初期値を割り当てます。プロパティをキー プロパティにする場合は、プロパティ名の前にキーワード Key を付けます。詳細については、「キー (Visual Basic)」を参照してください。複数のプロパティはコンマで区切ります。プロパティのデータ型を直接指定することはできません。型は初期値から推論されます。
Dim instanceName = New With {Key .Rank = 8, _ Key .Title = "Comptroller", _ .Location = "headquarters"}
これで宣言が完成しました。instanceName のプロパティには、他のオブジェクトの場合と同じようにアクセスできますが、キー プロパティの値は変更できません。
instanceName.Location = "conference" Console.WriteLine(instanceName.Title) ' The following statement does not compile, because Rank is ' a key property and cannot be changed. ' instanceName.Rank = 9
匿名型のプロパティを宣言する他の方法の詳細については、「方法 : 匿名型の宣言におけるプロパティ名と型を推論する」を参照してください。
堅牢性の高いプログラム
匿名型は、関連データを格納するための一時的なオブジェクトを作成する場合や、宣言ごとに異なるプロパティを選択する場合に適しています。
匿名型の使用にはいくつかの制限があります。最も重要な点は、匿名型では名前を使用できないことであり、コード内で型名が必要な場所に使用することはできません。匿名型を使用するプログラム方法の詳細については、「匿名型」を参照してください。