首页 / 知识
在C#中应如何使用匿名类型?
2023-04-14 11:59:00

How should anonymous types be used in C#?我已经看到了很多关于匿名类型如何工作的描述,但是我不确定它们是否真正有用。 在精心设计的程序中可以使用匿名类型解决哪些方案? 匿名类型与系统的设计甚至在类级别都没有关系。它们是开发人员在编码时使用的工具。 我什至不将匿名类型视为本身的类型。我主要将它们用作方法级别的匿名元组。如果我查询数据库然后处理结果,我宁愿创建一个匿名类型并使用它,而不是声明一个永远不会在我的方法范围之外使用或得知的全新类型。 例如:
没有人关心`a,匿名类型。它在那里,所以您不必声明另一个类。 从运行中的LINQ(第76页的2.6.3节):
基本上,它们对于暂时在本地范围内保存信息很有用。还有更多需要使用反射的问题,并且可能会成为一个很大的问题。他们在上面引用的书中给出的示例是以书面形式编写的,用于控制台id,名称和每个正在运行的进程占用的内存量。他们创建一个匿名类型,将其添加到列表(所有一条语句)中,然后使用ObjectDumper进行输出。因此,代码不再需要单独声明的类来保存所使用的id,名称和内存,而是全部隐式声明,使行数减少到4:
匿名类型最流行的用途是在LINQ to SQL查询中指定投影。 这个查询
将转换为以下SQL:
使用匿名类型,您可以创建临时投影而无需事先为其定义类型。编译器将为您定义类型。 与Linq一起使用。
为"使用和抛出"目的创建类型时。 重要的是要知道,LINQ不会强迫您使用匿名类型。选择后还可以编写普通的对象构造。
这可以防止您进行丑陋的反射编程。 @Wouter:
其中ID和NAME是您的Person类的不动产。 |
最新内容
相关内容
linux查u盘系统命令?
linux查u盘系统命令?,系统,设备,电脑,信息,管理,定期,软件,密码,生产,百分比,linux插入U盘时,怎样查看/dev/sd*的设备详细信息命令很多,举例说linux系统关键命令?
linux系统关键命令?,地址,工作,系统,信息,命令,目录,检测,环境,工具,设备,Linux文件系统操作命令1、cat:可以显示文件的内容(经常和more搭配使虚拟机linux系统命令?
虚拟机linux系统命令?,系统,工具,软件,名字,时间,命令,工作,首次,环境,名称,Linux虚拟机命令如何创建新的文件和文件夹1、首先,连接相应linux主linux系统中剪切命令?
linux系统中剪切命令?,工作,系统,地址,信息,命令,目录,管理,标准,工具,文件,Linux基本命令行操作(一)linux系统常用操作命令linux系统常用操作linux系统ll命令?
linux系统ll命令?,信息,系统,数据,时间,文件,命令,权限,观察,第一,数字,用ll命令查看在第一字段显示如下:+lrwx---+说明这个文件的类型为(+...linux命令行系统录屏?
linux命令行系统录屏?,工具,地方,系统,工作,地址,命令,服务,环境,状态,目录,在linux命令行下执行命令后结果太长屏幕不能看完全怎么办?1、Ctrl终止linux系统的命令?
终止linux系统的命令?,系统,传播,命令,电脑,软件,工作,管理,情况,进程,指令,linux系统如何停止指令linux系统停止指令步骤:输入ps命令获取进程linux系统光盘命令?
linux系统光盘命令?,系统,工作,信息,数据,地址,命令,一致,名称,盘中,传播,如何在Linux系统下挂载光盘如果Linux系统装的是虚拟机,有可能是光驱linux系统反回命令?
linux系统反回命令?,密码,系统,终端,环境,名称,状态,信息,电脑,一致,命令,linux,按了ctrl+alt+F1,进入了类似纯命令行的界面,让输入login信息,命令查看linux系统?
命令查看linux系统?,系统,信息,第一,设备,名称,软件,状态,工具,电脑,命令,如何查看linux系统CPU信息cpu信息记录在/proc/cpuinfo中。linux怎么linux系统ln命令?
linux系统ln命令?,位置,信息,系统,名称,名字,发行,盘中,文件,链接,命令,如何使用ln命令在linux下创建快捷方式1、方法:右键单击桌面的空白处,在linux系统命令pwd?
linux系统命令pwd?,密码,系统,命令,目录,工作,环境,工具,位置,不了,路径,锁定linux账号的命令是1、锁定Linux用户的命令是passwd+用户名。这个