Анонимный тип - 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"}
Смотрите также
Рекомендации
внешняя ссылка
- Презентация расширений языка C # 3.0
- Анонимные типы в Visual Basic 2008 - узнайте о новых функциях Visual Basic 2008.