匿名类型(Class)

简介: 匿名类型是无需预定义的,直接通过 `new {}` 创建实例的类型,编译器自动推断并生成只读属性和相关方法如`ToString()`。常用于简单场景,但ValueTuple提供更好的性能且无需额外类型。

匿名类型就是无需事先申明,可直接创建任意实例的一种类型。使用 new {}语法创建,创建时申明字段并赋值。

  • 由编译器进行推断创建出一个完整类型。
  • 匿名类型属性都是只读的,同时实现了相等比较、ToString()方法。
var u = new { Name = "same", Age = 10, Birthday = DateTime.Now };
Console.WriteLine(u.Name);
//u.Age=120; //只读不可修改

因此,匿名类型也是一种语法糖,由编译器来生成完整的类型。大多数场景都可以由 ValueTuple 代替,性能更好,也不需要额外的类型了。

相关文章
|
5月前
|
SQL 存储
访问者模式问题之LiteralExpression 类中的 literal 属性是用来做啥的
访问者模式问题之LiteralExpression 类中的 literal 属性是用来做啥的
|
Java
final 类,常量,方法的解释
final 类,常量,方法的解释
101 1
|
Java
【继承之extends关键字和super关键字】
【继承之extends关键字和super关键字】
70 0
|
缓存 安全 Java
Java反射:深入了解Class对象
Java是一门强类型语言,它要求在编译时知道所有的类和对象类型。然而,有时候我们需要在运行时动态地获取和操作类的信息,这就是Java反射的用武之地。本文将深入探讨Java反射,特别是与Class对象相关的内容。
116 0
|
存储 索引 Python
Python函数是所谓的第一类对象(First-Class Object)是什么鬼?
之前写过一篇关于装饰器的文章,虽然写得还算不错,但是也有不少同学表示没看懂,我大概分析了其中的原因,主要问题是他们不理解函数,因为Python中的函数不同于其它语言。
164 0
typescript37-class的构造函数实例方法继承(extends
typescript37-class的构造函数实例方法继承(extends
91 0
typescript37-class的构造函数实例方法继承(extends
Class类提供的常用方法
Class类提供的常用方法
147 0
函数柯里化与class类
是把接收多个参数的函数变换成接收一个单一参数(最初函数的第一个参数)的函数,并返回接受剩余的参数而且返回结果的新函数的技术。
static类为什么不能用sealed关键字修饰
今天在写代码时,顺手把一个static 类前面加上sealed关键字,结果编译时报错:” 类不能既是静态的又是密封的“。很是纳闷,sealed字段修饰类不是代表该类不能被继承吗,于是我去掉sealed关键字,生成一个dll。
910 0
|
JavaScript 前端开发
一篇文章理解JS继承——原型链/构造函数/组合/原型式/寄生式/寄生组合/Class extends
说实在话,以前我只需要知道“寄生组合继承”是最好的,有个祖传代码模版用就行。最近因为一些事情,几个星期以来一直心心念念想整理出来。本文以《JavaScript高级程序设计》上的内容为骨架,补充了ES6 Class的相关内容,从我认为更容易理解的角度将继承这件事叙述出来,希望大家能有所收获。
1562 0