简介

变量和函数根据作用域,有本地的,如local variable, 也有全局的,如Global variable.

对于OO领域的函数,一般我们知道,根据访问限定,有public、protected、private;

其他的还有内联的inline的函数。

在C# 7中,类似内部类,函数也可以定义在一个函数体内,变成函数内的函数。C#称之为local function

示例

比如,微软的如下的示例:

public static IEnumerable<int> OddSequence(int start, int end){if (start < 0 || start > 99)throw new ArgumentOutOfRangeException("start must be between 0 and 99.");if (end > 100)throw new ArgumentOutOfRangeException("end must be less than or equal to 100.");if (start >= end)throw new ArgumentException("start must be less than end.");return start%2 == 1?GetOddSequenceEnumerator():GetEvenSequenceEnumrator();IEnumerable<int> GetOddSequenceEnumerator(){for (int i = start; i <= end; i++){if (i % 2 == 1)yield return i;}}IEnumerable<int> GetEvenSequenceEnumrator(){for (int i = start; i <= end; i++){if (i % 2 == 0)yield return i;}}}

在上面的示例中,定义了2个local function.


定义及调用位置

local function可以被调用和定义在这些地方:

  • 构造器
  • 属性访问子
  • 事件访问子
  • 匿名函数
  • Lam不大表达式中
  • Finalizers
  • 另外的local function内。

定义格式:

<modifiers: async | unsafe> <return-type> <method-name> <parameter-list>

C# v7.0版本中的local function相关推荐

  1. 关于Unity的SteamVR Plugin 2.0版本中SteamVR_Controller不见的问题

    考虑到VR设备输入更加多样性,Steam在2.0版本中去掉了旧的输入方式,不再有SteamVR_Controller这个脚本 steam关于2.0的介绍如下: https://steamcommuni ...

  2. SS CMS 全新跨平台 V7.0 版本正式发布

    今天,我们很高兴宣布基于.NET CORE平台的全新 SS CMS V7.0正式发布,新版本采用.NET CORE模块化和高性能实现,用于创建在Windows,Linux.Mac以及Docker上运行 ...

  3. 设置hive的执行引擎_0506-如何将Hue4.0版本中默认执行引擎设置为Hive而非Impala

    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图. Fayson的github: https://github.com/fayson/cdhproject 提示 ...

  4. 图像处理VintaSoftImaging.NET SDK控件发布v7.0版本

    近日,VintaSoftImaging.NET SDK发布了新版本v7.0.该控件包发生了显著地变化,图形用户界面控件支持WinForms和WPF.能够把库移植到其它平台和开发环境中,同时最大限度地提 ...

  5. Kafka原理——fabric1.0版本中的节点排序方法

    Kafka原理 可参考Zookeeper一起理解,后续自己在项目中实现,会再来补充一些实践的内容. Zookeeper整理:https://blog.csdn.net/yangwei256/artic ...

  6. oracle12.2+asm进程,Oracle12,1,2,0版本中遇到bug25211209

    现象描述: 12.1.0.2 集群进程 ocssd.bin 占用较高的 CPU : PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  ...

  7. VMware使用OVFTool导出Esxi 6.7.0版本中的虚拟机

    一般情况在VMware ESXi 6.7.0平台上想要导出虚拟机,需关闭虚机电源,导出OVF文件,今天遇到导出进度一直卡在50%的情况,所以决定换一种导出方式. 使用VMware OVF Tool工具 ...

  8. AccountManager getAccount 在Android O 8.0版本中获取为 null ?

    问题 AccountManager accountManager = AccountManager.get(this);Account[] accounts = accountManager.getA ...

  9. Elasticsearch8.0版本中Elasticsearch Java API Client客户端的基本使用方法

    关于Elasticsearch Java API Client客户端如何连接以及如何对索引和文档进行基本的增删改查操作请查看我的上一篇博文:Elasticsearch RestHighLevelCli ...

最新文章

  1. QT的Q3DScatter类的使用
  2. ctf php 读取flag,BugkuCTF flag.php(反序列化)
  3. AI赋能红外测温助力精准防控疫情……
  4. 前端_网页编程 Ajax加强
  5. 最近打算再写一个 局域网聊天软件
  6. [转]ASP.NET页面HEAD区动态设置全攻略
  7. php导出csv文件乱码问题解决方法
  8. ApacheCN 数据科学译文集 20210313 更新
  9. 米斯特白帽培训讲义 漏洞篇 越权
  10. oracle迁移性能对比,SQL Server 2015与Oracle性能对比.doc
  11. 清华大学 c语言 大作业,雷课堂(THUnderClass)——清华大学2020C++大作业个人项目记录与总结...
  12. 理解 GBK、Unicode、utf-8
  13. 任正非:股权激励拯救了华为!
  14. 牛排生熟程度 英语说法
  15. 怎么让背景铺满整个页面_css新手教程之背景图充满整个屏幕
  16. java树状结构递归与非递归实现,外加sql递归实现
  17. 爪哇国新游记之三----自创动态数组类
  18. 聚类分析:使用过程CLUSTER实现层次法(聚多少类的评判)
  19. 用DCG做单元测试报表
  20. 定时任务解决方案 - 定时执行专家

热门文章

  1. [JUC-4]ThreadPoolExecutor源码分析
  2. 沈石溪事件持续发酵 韩国将严查体育界暴力事件
  3. linux系统内核从3.2.0-100-generic升级到3.13版本
  4. 科普向--详解JavaScript中的数据类型
  5. CoreOS上的Fleet,第二部分
  6. 2.平凡之路-初识MyBatis
  7. 如何在Windows、Linux中获取主机的网络信息和公网地址
  8. [Cocos2d-x For WP8]Hello world
  9. 一次简单的sql性能比较
  10. 【旅行】——出发!露营去。