当前位置: 首页 > news >正文

包头市住房和城乡建设局官方网站已经买了域名怎么做网站

包头市住房和城乡建设局官方网站,已经买了域名怎么做网站,wordpress加底部进度条,WordPress 3.5火车头发布接口C# 局部静态函数,封闭方法中的最佳选择 简介特性 应用场景辅助计算递归与尾递归优化筛选与过滤操作查找与映射操作 生命周期静态局部函数 vs 普通局部函数性能封装性可读性 简介 C# 局部静态函数(Local Static Functions)是一种函数作用域内…

C# 局部静态函数,封闭方法中的最佳选择

  • 简介
    • 特性
  • 应用场景
    • 辅助计算
    • 递归与尾递归优化
    • 筛选与过滤操作
    • 查找与映射操作
  • 生命周期
  • 静态局部函数 vs 普通局部函数
    • 性能
    • 封装性
    • 可读性

简介

C# 局部静态函数(Local Static Functions)是一种函数作用域内的嵌套函数,同时可以标记为 static,在 C# 8.0 中引入。这种特性允许我们定义更安全、更高效、更可读的辅助方法,并能在某些业务场景下带来便利和性能优化。

  • 局部函数:在另一个函数内定义的嵌套函数,具有访问外部作用域变量的能力。
  • 静态局部函数:添加 static 关键字,使得局部函数无法访问外部作用域变量。
using System;class Program
{static void Main(){// 局部变量int outerVariable = 42;// 普通局部函数,可以访问外部变量int NormalLocalFunction(){return outerVariable + 10;}// 静态局部函数,无法访问外部变量static int StaticLocalFunction(){return 10; // outerVariable 不可见}Console.WriteLine(NormalLocalFunction()); // 输出:52Console.WriteLine(StaticLocalFunction()); // 输出:10}
}

特性

  • 封装性:局部函数属于封闭函数的内部实现细节,提高封装性。
  • 静态性:静态局部函数不依赖外部变量,避免潜在的闭包问题,性能更好。
  • 作用域:局部函数在封闭函数的作用域内定义和使用。

应用场景

辅助计算

可以将静态局部函数用于计算或转换操作,避免重复计算,提高代码可读性。

using System;class Program
{static void Main(){double CalculateCircleArea(double radius){static double Square(double x) => x * x;const double Pi = 3.141592653589793;return Pi * Square(radius);}double area = CalculateCircleArea(10);Console.WriteLine($"Area of circle: {area}");}
}
将局部函数声明为 static 会避免捕获外部变量,从而防止编译器生成闭包对象,提高性能。

递归与尾递归优化

静态局部函数非常适合用于递归计算。通过局部函数实现尾递归[^1] 优化。

using System;class Program
{static void Main(){int Factorial(int n){static int InnerFactorial(int n, int acc){if (n <= 1) return acc;return InnerFactorial(n - 1, acc * n);}return InnerFactorial(n, 1);}Console.WriteLine($"Factorial of 5: {Factorial(5)}"); // 输出:120}
}

[^1] 递归调用作为最后操作,累积结果直接传递,优化了栈深度

筛选与过滤操作

静态局部函数可以用于复杂的筛选和过滤操作,提高代码复用性和可读性。

using System;
using System.Collections.Generic;
using System.Linq;class Program
{static void Main(){IEnumerable<int> FilterNumbers(IEnumerable<int> numbers){static bool IsEven(int number) => number % 2 == 0;return numbers.Where(IsEven);}var numbers = new[] { 1, 2, 3, 4, 5, 6 };var evenNumbers = FilterNumbers(numbers);Console.WriteLine("Even numbers:");foreach (var number in evenNumbers){Console.WriteLine(number);}}
}

查找与映射操作

静态局部函数可以用于查找、映射等操作,将复杂逻辑封装在局部函数内。

using System;
using System.Collections.Generic;class Program
{static void Main(){string GetGrade(int score){static string MapScoreToGrade(int score) => score switch{>= 90 => "A",>= 80 => "B",>= 70 => "C",>= 60 => "D",_ => "F"};return MapScoreToGrade(score);}var scores = new Dictionary<string, int>{{ "Alice", 92 },{ "Bob", 83 },{ "Charlie", 78 },{ "Dave", 55 }};foreach (var (name, score) in scores){Console.WriteLine($"{name}: {GetGrade(score)}");}}
}

生命周期

  • 局部静态函数属于封闭函数内部。
  • 封闭函数调用时,局部静态函数随之被定义,并作为封闭函数的一部分进行编译。
  • 局部静态函数在封闭函数调用期间会被实例化并执行。它的生命周期与封闭函数的执行周期相关。

静态局部函数 vs 普通局部函数

性能

  • 静态局部函数不捕获外部变量,不产生闭包对象,因此性能更优。

封装性

  • 静态局部函数无法访问外部变量,更具封装性,减少意外副作用。

可读性

  • 静态局部函数能明确表明不依赖外部状态,提高代码的可读性和逻辑清晰度。

提示:如果需要在封闭的方法内定义一个方法,并且这个方法只在封闭的方法内使用,那么使用局部静态函数通常是最佳选择。

http://www.yayakq.cn/news/177748/

相关文章:

  • 余姚做百度网站建设北京公司网页设计
  • 网站建设 管理 会议纪要关于网站设计的职业
  • 怎么用织梦搭建网站自己做的美食分享到网站
  • 音乐网站排名个人引流推广怎么做
  • wordpress更改静态seo网站优化平台
  • 东莞网站网络推广在线免费域名网站解析
  • 做企业网站的缺点温州seo
  • 网站做微信链接工业设计专业最好的大学世界排名
  • 万网 网站模板pdf做电子书下载网站
  • 昆明网站建设电话wordpress删除plugins
  • 在线代理的网站青岛网络推广方案
  • 电子商务网站 icp备案软件外包合同模板
  • 如何在自己的网站上做友情链接哈尔滨龙彩做网站多少钱
  • 丹阳企业网站wordpress小程序编辑
  • 北京高端企业网站建设企业网站建站策划书
  • 做网站常用字体做微商能利用的网站有哪些
  • 西安搭建网站面料 做网站
  • 住房与城乡建设部违法举报网站宁波网站设计方案
  • 创意家装设计公司seo建站公司
  • 建立网站三大基础什么程序做的网站没有index页面
  • 中小学生在线做试卷的网站wordpress资源站模板
  • 福建莆田网站开发wordpress弹窗通知
  • linux 如何做网站视频网站怎么做排名
  • 网站建设组织机构wordpress导入html
  • 用vue做多页面网站广州网站建设哪家技术好
  • 菜鸟学做网站百度地图网站后台更新
  • 韵达快递小网站怎么做wordpress 没有上级目录的写权限
  • 笔记本怎么建设网站网站如何做网页查询
  • 做别墅花园绿化的网站四川电大住房和城乡建设厅网站
  • 《21天网站建设实录最新新闻热点事件时评