问题描述
我只遇到过几次,现在还不完全了解,但是我觉得有必要研究幕后实际发生的事情。
我认识到它正在创建一个对象的新实例,但是尚未指定类型。
var
当您将object
换成dynamic
或pseudo-class
时,它也起作用。但是,考虑到这一点,我无法真正找到它来进行研究。我相信它被称为pseudo-object
或 [[ $1 =~ .*\d+.* ]] && echo "The name must not contain digits" && exit 1
echo "Oh no"
,但我找不到关于它的任何实际文档。
我已经对该主题(here's the latest)进行了几次Google搜索,甚至审查了一些相关的SO帖子(here's one about initialization),但仍然找不到答案。
这实际上叫什么?
解决方法
它称为anonymous type,并直接实例化。
,Instantiation of anonymous types
要创建anonymous type的实例,请使用新的运算符和对象初始化程序语法:
var example = new { Greeting = "Hello",Name = "World" }; Console.WriteLine($"{example.Greeting},{example.Name}!");
这称为Anonymous Type。
从文档中
匿名类型提供了一种方便的方法,可以将一组只读属性封装到单个对象中,而不必先明确定义一个类型。类型名称由编译器生成,在源代码级别不可用。每个属性的类型都是由编译器推断的。