时间:2021-04-16
由于垃圾收集器(GC)会清理任何对象,因此,匿名类型是可以从函数返回的。不过在定义范围之外,匿名类型只是一个object的实例而已。不幸的是,返回一个object将会使智能感知技术无效,而且还会破坏匿名类型的强类型特性。虽然你可以通过反射来重新找出该匿名类型的功能,不过,这也将使得这个本来很舒服的东西变得不那么舒服了。下面示例就是一个从函数返回匿名类型的例子,不过在实际应用当中,最好还是只在定义范围内使用匿名类型。
示例 从方法中返回匿名类型将破坏匿名类型的强类型特性
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
namespace ReturnAnonymousTypeFromMethod
{
class Program
{
static void Main(string[] args)
{
var anon=GetAnonymous();
Type t=anon.GetType();
Console.WriteLine(t.GetProperty("Stock").GetValue(anon,null));
Console.ReadLine();
}
public static object GetAnonymous()
{
var stock=new{Stock="MSFT",Price="32.45"};
return stock;
}
}
}
虽然反射玩起来很爽,不过编写示例所示的那种代码不仅会很慢而且还会很痛苦。(另外,像示例那样的代码还很容易出现bug,因为GetType、GetProperty以及GetValue都可能会返回空值)
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本篇主要介绍普通函数、匿名函数、闭包函数目录普通函数:介绍普通函数的特性:同名覆盖、arguments对象、默认返回值等。匿名函数:介绍匿名函数的特性:变量匿名
概述匿名函数,顾名思义即没有名称的函数,和def定义的函数的最大区别在于匿名函数创建后返回函数本身(即匿名函数不需要return来返回值),表达式本身结果就是返
本文实例讲述了JS匿名函数和匿名自执行函数概念与用法。分享给大家供大家参考,具体如下:1.匿名函数的常见场景js中的匿名函数是一种很常见的函数类型,比较常见的场
Go语言最主要的特性复制代码代码如下:自动垃圾回收更丰富的内置类型函数多返回值错误处理匿名函数和闭包类型和接口并发编程反射语言交互性高性能/高效开发安装安装说明
递归是一种常见的编程技巧,实名递归相信大家都不陌生,但如果想要实现匿名递归呢?比如想要返回一个匿名递归函数,又或者是定义一个匿名递归函数并直接调用它,该怎样去做