泛型委托 Func<out T>,当返回的数据是一个匿名类型的时候该怎么办
时间:2020-05-29
本文章向大家介绍泛型委托 Func<out T>,当返回的数据是一个匿名类型的时候该怎么办,主要包括泛型委托 Func<out T>,当返回的数据是一个匿名类型的时候该怎么办使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
当我们需要用到一个返回 匿名类型的委托的时候,我们该怎么弄,我们知道,声明一个匿名对象时,可以用 var 关键字来配合声明,既
var data = new { id = 3, name = "bdadsfg" };
但是当用一个lambda表达式去给一个委托赋值时,
vs 编译器会直接提示报错。
解决方法有两种,
1.用dynamic关键字
Func<dynamic> func2 = () => { return new { id = 2, name = "bac" }; }; var res2 = func2();
2.声明一个方法来中间过渡
/// <summary> /// BuildFunc实际上并没有做任何事情 – 它只是提供了让编译器为Func<>的泛型类型参数进行类型推断所需的方法调用 /// </summary> public static Func<TResult> BuildFunc<TResult>(Func<TResult> function) { return function; }
var func3 = BuildFunc(() => { return new { id = 3, name = "bac" }; });
用第二种方法,用过截图可以看到,委托执行的结果res3可以直接利用vs的快捷功能直接点出来 id和name。这就在编译阶段确认了安全性,而第一种的 dynamic 关键字 是一个动态类型,是到运行时才解析数据的类型。安全性就相对差一些,所以个人推荐第二种
原文地址:https://www.cnblogs.com/xiaoZhang521/p/12988843.html
- Bootstrap幻灯轮播如何支持触屏左右滑动手势?
- JavaScript 调试小技巧
- 图片上传预览js
- Isolation Forest算法实现详解
- css继承样式怎么控制?用选择器
- wordpress站内搜索结果页URL伪静态如何操作
- 如何实现大图居中超过的部分两边自动隐藏
- Ubuntu16.04安装后开发环境配置和常用软件安装
- wordpress如何屏蔽wp-json(禁用REST API)
- 贝叶斯系列——贝叶斯与其他统计流派的区别和联系
- bootstrap tab切换如何让鼠标移动自动切换内容
- css自动换行如何设置?url太长会撑开页面
- Histogram of Oriented Gridients(HOG) 方向梯度直方图
- 动态规划系列之最长递增子序列问题解答
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 聊一聊如何搭建高性能网站哪一些事
- Spring Cloud netflix ribbon源码分析
- 抽奖摇号系统随机性算法介绍
- 翻了翻element-ui源码,发现一个很实用的指令clickoutside
- 自研网关:限流功能的开发
- 如果JSP中无法自动提示EL表达式的解决方法(针对普通项目和maven有不同的方法)
- Android通过ExifInterface判断Camera图片方向的方法
- Python PyQt5整理介绍
- django API 中接口的互相调用实例
- Python Numpy中数据的常用保存与读取方法
- python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
- Django Admin设置应用程序及模型顺序方法详解
- 在 Pycharm 安装使用black的方法详解
- Android开发手机无线调试的方法
- Android Studio Gradle插件版本与Gradle版本之间的对应关系