Loading article…
匿名型は、 C# 3.0、Visual Basic .NET 9.0、Oxygene、Scala、Goの機能であり、データ型が、型を明示的に定義することなく、一連のプロパティを単一のオブジェクトにカプセル化できるようにします。[ 1 ]これは、 C# および VB.net に統合されているSQLライクなLINQ機能にとって重要な機能です。匿名型には名前付き型がないため、キーワードを使用して宣言された変数varに格納する必要があり、C# コンパイラに変数の型推論を使用するように指示します。作成されたプロパティは C# では読み取り専用ですが、VB.net では読み書き可能です。
この機能は動的型付けと混同してはいけません。匿名型を使うとプログラマーはフィールドを「その場で」定義できるように見えますが、実際には静的なエンティティです。型チェックはコンパイル時に行われ、存在しないフィールドにアクセスしようとするとコンパイラーエラーが発生します。これにより、プログラマーは動的言語の利便性を享受しつつ、静的型付け言語の型安全性を得ることができます。
var person = new { firstName = "John" , lastName = " Smith " } ; Console.WriteLine ( person.lastName ) ;出力:スミス
var person struct { firstName string ; lastName string } person . firstName = "John" person . lastName = "Smith"let person = object val firstName = "John" val lastName = "Smith" end ;;var person := new class ( firstName := 'John' , lastName := 'Smith' );$person = new class { public $firstName = "John" ; public $lastName = "Smith" ; };val person = new { val firstName = "John" ; val lastName = "Smith" }Dim person = New With { .firstName = "John" , .lastName = " Smith" }