dynamic结合匿名类型 匿名对象传参
首先说明下,我一般很少用dynamic关键字(类)的,因为毕竟是由反射实现的,所以对于性能方面还是吃亏不少(注:由于心里没底,查了一些资料得知,dynamic实质上好像不是由反射实现的,其性能也比直接反射要高不少,至于为什么,我也不明白,希望你们知道的能留言告诉我一下!谢谢啦 ^_^)我也不知道为什么DLR能够实现与反射一样的实现,但代码,性能要比后者简介,高效!!
我这里就纯粹在这里坐下记录
- 匿名对象(类型)传参的几种方式
代码如下:
class Program
{
static void Main(string[] args)
{
int[] array = new int[]{
3,4,5,6,7,8,9
};
var data = from r in array
where r == 8
select new
{
ID = r
};
GetNumber(data);
GetNumber1(data.First()); //直接转成一个匿名类
}
static void GetNumber(dynamic data)
{
Console.WriteLine(dy.First().ID); //报错,因为dy传过来之后不识别First()这个Linq下的拓展方法
Console.ReadLine();
}
static void GetNumber1(dynamic data)
{
Console.WriteLine(dy.ID); //正确
Console.ReadLine();
}
static void GetNumber2(dynamic data)
{
//强转dynamic对象
IEnumerable<dynamic> dy = data;
Console.WriteLine(dy.First().ID); //正确,能正确识别Linq下的First()
Console.ReadLine();
}
}
总结:1. 动态对象不支持拓展方法
2. 匿名函数(Lambda表达式)不能用作动态方法调用的参数,故Linq不用用于动态对象
3. 能避免用dynamic就避免使用,但是有些情况,还是可以使用的(比如能大幅度缩减代码量,提高代码清晰度,代码结构分明等好处),有时候那么点性能也不是那么重要 ^_^
OVER!!! 睡觉
转载于:https://www.cnblogs.com/ms27946/p/4976330.html
dynamic结合匿名类型 匿名对象传参相关推荐
- mybatis多对一,一对一,多对多resultMap映射,pojo映射,传参集合,封装的对象传参
普通映射: <!-- 使用resultMap解决列名和属性名不一致的情况 --><!-- 配置一个resultMap映射列和属性 --><resultMap type=& ...
- c++ 计算长方形面积 类对象传参
c++ 计算长方形面积 类对象传参 题目 问题描述 问题分析 设计思想 设计表示 源代码 测试数据及运行结果 题目 编写一个程序计算两个给定长方形的面积,其中在设计类成员函数addarea()(用于计 ...
- springmvc 对象传参
springmvc 对象传参 第一种情况 public class User implements Serializable {private Integer id;private String na ...
- php值传参,引用传参以及对象传参
传值:是把实参的值赋值给行参 ,那么对行参的修改,不会影响实参的值 传引用 :真正的以地址的方式传递参数传递以后,行参和实参都是同一个对象,只是他们名字不同而已对行参的修改将影响实参的值 说明: 传值 ...
- C++ 类模板对象传参方式
#include <iostream> #include <string> using namespace std;/***************************** ...
- DWR第四篇之对象传参
1. 本示例在第一篇架构基础上添加代码 2. 首先,在dwr.xml文件里添加对象转换器 3. 编写Person实体类 1 package com.skyer.vo; 2 3 import java. ...
- 微软免费图书《Introducing Microsoft LINQ》翻译Chapter2.1:C# 3.0 特性(对象初始化表达式\匿名类型\查询表达式)...
本书翻译目的为个人学习和知识共享,其版权属原作者所有,如有侵权,请告知本人,本人将立即对发帖采取处理. 允许转载,但转载时请注明本版权声明信息,禁止用于商业用途! 博客园:韩现龙 Introducin ...
- C#编程(十六)----------匿名类型
匿名类型 var和new关键字一起使用,可以创建匿名类型. 匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型. 类型名由编译器生成,并且不能在源代码级使用 ...
- 4.Ling初体验 匿名类型在查询表达式中的使用
定义: 匿名类型是指包括一个或多个公共属性的类类型, 它提供了将查询结果临时组合在一起的捷径,从而不需要为每个查询结果集合指定一个有名称了类型. 在LINQ中,匿名类型广泛使用与查询表达式中的sel ...
最新文章
- 服务器的操作系统分哪几类,服务器的操作系统分哪几类
- 索引,表增删改统计,加锁查具体情况(推荐)
- centos7.3安装nodejs
- 10个精选的颜色选择器Javascript脚本及其jQuery插件
- 如何提升你的代码能力?
- linux 共享移动硬盘,随时登陆上QQ 自带Linux移动硬盘实战
- vins-mono中在rviz可视化下如何在world坐标系中让视角跟着相机移动
- seaborn常用速查手册
- 浅谈长尾理论--《Makers》读后感
- 烂泥:使KVM显示VM的IP地址及主机名
- 论文笔记_S2D.16-2016-3DV-利用全卷积残差网络进行深度预测
- 解决从PDF复制到Word中的英文字母变成宋体格式的问题
- proteus 直流可调稳压电源
- 华为C语言编程规范(整理)
- 《人生七年》-------殊途同归
- JS十六进制转浮点、字符串转为ArrayBuffer、ArrayBuffer转16进制字符串、16进制转10进制、crc校验位、十六进制转中文字符串(小程序、浏览器)、十六进制字符串转ascall字串
- Object.entries()
- 如何安装打印机驱动程序?快速安装的方法
- 10个超赞的HTML5框架加快Web开发
- Functional Commitment Schemes: From Polynomial Commitments to Pairing-Based Accumulators学习笔记
热门文章
- sql出现列名无效的原因_SQL数据库中的数据类型与表结构的创建
- 计算机基础知识必刷,《2019年江苏专转本考试-计算机基础必刷题题库(第四章)》...
- bigdecimal java 最大值_Java中的数学运算BigDecimal
- 兰州大学第一届『飞马杯』程序设计竞赛(同步赛),签到题ACFHJ
- 【PAT乙】1044 火星数字 (20分)
- linux文件移动到hdfs,解决从linux本地文件系统上传文件到HDFS时的权限问题
- oracle alert.log查找,oracle alert.log位置
- java中 運算符,Java中的運算符
- Python入门--获取指定目录下的所有.py文件
- java mapreduce示例,hadoop入门-MapReduce实例(一)