匿名类型(Class)

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

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

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

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

相关文章
|
1月前
|
Java
获取 Class 对象
获取 Class 对象
16 1
|
8月前
|
安全
【system verilog】OOP属性下的构造函数new,虚方法virtual和cast方法(5)
【system verilog】OOP属性下的构造函数new,虚方法virtual和cast方法(5)
枚举类的写法
传统的写一个季节类,然后有一个季节名字和描述,并为属性设置get set方法。 在主方法中我们可以随意设置季节名字,但是我们知道这是不合适的,因为我们知道只有4个季节 所以我们可以设置为一个枚举类
95 0
|
存储 索引 Python
Python函数是所谓的第一类对象(First-Class Object)是什么鬼?
之前写过一篇关于装饰器的文章,虽然写得还算不错,但是也有不少同学表示没看懂,我大概分析了其中的原因,主要问题是他们不理解函数,因为Python中的函数不同于其它语言。
122 0
|
缓存 Dart 安全
Dart中的类——初始化列表、命名构造器、factory构造器、常量构造器、构造器私有化、get和set方法、枚举
Dart中的类——初始化列表、命名构造器、factory构造器、常量构造器、构造器私有化、get和set方法、枚举
typescript37-class的构造函数实例方法继承(extends
typescript37-class的构造函数实例方法继承(extends
67 0
typescript37-class的构造函数实例方法继承(extends
|
JavaScript
TypeScript类与继承和修饰符public 、private 、protected 的详细讲解 (上)
TypeScript类与继承和修饰符public 、private 、protected 的详细讲解
TypeScript类与继承和修饰符public 、private 、protected 的详细讲解 (上)
|
JavaScript
TypeScript类与继承和修饰符public 、private 、protected 的详细讲解 (下)
TypeScript类与继承和修饰符public 、private 、protected 的详细讲解
|
安全 Java
使用ABAP的RTTI和Java反射机制访问static private属性
使用ABAP的RTTI和Java反射机制访问static private属性
125 0
使用ABAP的RTTI和Java反射机制访问static private属性
static类为什么不能用sealed关键字修饰
今天在写代码时,顺手把一个static 类前面加上sealed关键字,结果编译时报错:” 类不能既是静态的又是密封的“。很是纳闷,sealed字段修饰类不是代表该类不能被继承吗,于是我去掉sealed关键字,生成一个dll。
884 0