Анонимный тип - Anonymous type

Анонимные типы - это функция C # 3.0, Visual Basic .NET 9.0 , Oxygene , Scala и Go, которая позволяет типам данных инкапсулировать набор свойств в один объект без необходимости сначала явно определять тип. Это важная функция для SQL- подобной функции LINQ, которая интегрирована в C # и VB.net. Поскольку анонимные типы не имеют именованного типа, они должны храниться в переменных, объявленных с использованием var ключевого слова, сообщая компилятору C # использовать вывод типа для переменной. Созданные свойства доступны только для чтения в C #, однако они доступны для чтения и записи в VB.net.

Эту функцию не следует путать с динамической типизацией . Хотя анонимные типы позволяют программистам определять поля, казалось бы, «на лету», они по-прежнему являются статическими объектами. Проверка типа выполняется во время компиляции, и попытка доступа к несуществующему полю вызовет ошибку компилятора. Это дает программистам большую часть удобства динамического языка с безопасностью типов статически типизированного языка .

Примеры

C #

var person = new { firstName = "John", lastName = "Smith" };
Console.WriteLine(person.lastName);

Выход: Смит

Идти

var person struct { firstName string; lastName string }
person.firstName="John"
person.lastName="Smith"

OCaml

let person = object val firstName = "John" val lastName = "Smith" end;;

Кислород

var person := new class(firstName := 'John', lastName := 'Smith');

PHP

$person = new class
{
    public $firstName = "John";
    public $lastName = "Smith";
};

Scala

val person = new { val firstName = "John"; val lastName = "Smith" }

Visual Basic .NET

Dim person = New With {.firstName = "John", .lastName = "Smith"}

Смотрите также

Рекомендации

внешняя ссылка