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

建材网站制作简约wordpress模板

建材网站制作,简约wordpress模板,wordpress 写文章空白,wordpress主题highend1. 核心关系图示 A[委托] --> B[提供方法容器] B --> C[Lambda表达式] C --> D[委托实例的语法糖] A --> E[类型安全约束] C --> F[编译器自动生成委托实例] 2. 本质联系 2.1 类型关系 ‌Lambda表达式‌是编译器生成的‌委托实例‌表达式自动匹配符合签名的…

1. 核心关系图示

A[委托] --> B[提供方法容器]
B --> C[Lambda表达式]
C --> D[委托实例的语法糖] 
A --> E[类型安全约束]
C --> F[编译器自动生成委托实例] 

2. 本质联系

2.1 类型关系

  • Lambda表达式‌是编译器生成的‌委托实例
  • 表达式自动匹配符合签名的委托类型
// 等效代码对比 
Func<int, int> square = x => x * x; 
// 编译器生成: 
Func<int, int> square = delegate(int x) { return x * x; }; 

2.2 编译机制

var list = new List<int> { 1, 2, 3 }; var evens = list.Where(n => n % 2 == 0); 
// 编译器处理为: 
IEnumerable<int> evens = Enumerable.Where(list, new Func<int, bool>(匿名方法对象)); 

3. 关键交互特性

3.1 类型推断

// 明确委托类型时 
Action<string> logger = msg => Console.WriteLine(msg); 
// 需显式声明类型的情况 
var processor = new SomeProcessor(); 
processor.DoWork((int x, int y) => x + y); 
// 无法推断参数类型时 

3.2 闭包现象

void CreateActions(List<Action> actions) 
{ 
for (int i = 0; i < 3; i++) 
{ actions.Add(() => Console.WriteLine(i)); 
} 
}// 输出全为3(闭包捕获变量引用)  

4. 应用场景对比

4.1 传统委托 vs Lambda

场景传统委托写法Lambda写法
按钮点击事件button.Click += delegate { ... }button.Click += (s,e) => {...}
LINQ筛选Where(delegate(int x) { return x>5; })Where(x => x > 5)
异步回调Task.Run(delegate { ... })Task.Run(() => { ... })

4.2 特殊交互案例

// 多播委托中的Lambda 
Action multiAction = () => Console.Write("A"); 
multiAction += () => Console.Write("B");
multiAction(); 
// 输出AB(保留执行顺序) 
// 带返回值的Lambda 
Func<int> counter = () => {int count = 0; return ++count; 
}; 
Console.WriteLine(counter()); 
// 每次输出1(状态不保留) 

5. 底层原理分析

5.1 编译结果对比

// 源代码Func<int, bool> isEven = n => n % 2 == 0; 
// 反编译结果(部分) 
[CompilerGenerated] 
private sealed class <>c 
{ 
public static readonly <>c <>9 = new <>c();public static Func<int, bool> <>9__0_0; 
internal bool <Main>b__0_0(int n) 
{ return n % 2 == 0; } } 
// 实际调用 
Func<int, bool> isEven = <>c.<>9__0_0 ?? (<>c.<>9__0_0 = new Func<int, bool>(<>c.<>9.<Main>b__0_0)); 

5.2 内存模型

 A[Lambda表达式] --> B[编译器生成密封类] 
B --> C[捕获的变量变为类的字段] 
B --> D[委托实例指向类方法] 

6. 最佳实践

6.1 选择依据

情况推荐方式
简单单行逻辑Lambda表达式
需要重用方法体具名方法+委托
需要维护复杂状态类实例方法

6.2 性能提示

// 避免高频调用的Lambda(每次生成新委托)for (int i = 0; i < 100000; i++) 
{ var temp = i; Task.Run(() => Process(temp)); 
// 产生大量临时委托 } 
// 优化方案(预先生成委托)static readonly Action<int> ProcessAction = Process;static void Process(int num) 
{ 
/*...*/ 
} 
// 调用 
Task.Run(() => ProcessAction(i)); 

7. 常见误区

7.1 延迟执行陷阱

var values = new[] { 1, 2, 3 };

var filters = new List<Func<int, bool>>();

for (int i = 0; i < 3; i++)

{ filters.Add(x => x > i);

// 捕获变化的i }

// 实际执行时i=3,所有条件变为x>3 Console.WriteLine(filters(2));

// 输出False

7.2 空值判断问题

EventHandler handler = null;

handler += (s, e) => Console.Write("A");

// 实际是handler = lambda handler?.Invoke(); // 可正常执行


总结图谱

A[Lambda表达式] --> B[委托实例]

B --> C[编译器生成类]

C --> D[捕获变量存储]

C --> E[方法指针绑定]

A --> F[类型系统]

F --> G[Action/Func]

F --> H[自定义委托]


文章转载自:

http://6Tq3myKC.qtrLh.cn
http://YHXb3amh.qtrLh.cn
http://cQKxcYFN.qtrLh.cn
http://gRQ8BWCf.qtrLh.cn
http://2vviNxwA.qtrLh.cn
http://ek9kJwkF.qtrLh.cn
http://CZ4qY9bt.qtrLh.cn
http://DUD8nkIF.qtrLh.cn
http://eUnS5Yxf.qtrLh.cn
http://2PQgcqkc.qtrLh.cn
http://IaWdre5p.qtrLh.cn
http://XcpbMlCy.qtrLh.cn
http://OEvaVyKY.qtrLh.cn
http://kDWMOlyg.qtrLh.cn
http://skIaeyGi.qtrLh.cn
http://N9gzroAn.qtrLh.cn
http://yhLQEhhw.qtrLh.cn
http://kNScR7vE.qtrLh.cn
http://UjxE7raq.qtrLh.cn
http://TzM1WdO0.qtrLh.cn
http://UPn5Z0Q2.qtrLh.cn
http://XH65HmR1.qtrLh.cn
http://sQjeZMnd.qtrLh.cn
http://wJLPVGfs.qtrLh.cn
http://TxyyRzGL.qtrLh.cn
http://KYF2pD0m.qtrLh.cn
http://cIap27m6.qtrLh.cn
http://Y6RJT8PQ.qtrLh.cn
http://gLUZGrvN.qtrLh.cn
http://qHOo3x0d.qtrLh.cn
http://www.dtcms.com/wzjs/610558.html

相关文章:

  • 企业展厅设计公司重庆做搜狗网站优化排名
  • 优化大师win10下载泉州seo培训
  • 怎么在搜索引擎里做网站网页完成网络广告营销策划和推广
  • 舟山建设银行纪念币预约网站邮箱购买
  • phpcms电影网站开发福建省住房建设厅网站6
  • 网站如何做前后端分离展馆设计费取费标准一览表
  • wap网站浏览器wordpress安装中文
  • 毕业设计做网站难吗wordpress 精致主题
  • 58网站自己做手机软件免费开发公司
  • 合肥营销网站建设价格微信商城小程序怎么做
  • 天津网站建设制作开发公司wordpress 文本编辑器
  • 网站侧边栏怎么做昆明网站外包
  • 茄子河区网站建设自查报告商旅网站建设
  • 兰州seo网站建设wordpress 指南
  • 网站建设需要哪些信息做网站郴州
  • 做网站先要学百度云盘网页登录入口
  • 红色企业网站模板注册一家公司要花多少钱
  • 网站开发价格网站修改flashfxp上传多久生效
  • 做简单网站需要学什么如何自学网站建设书籍
  • 网页小游戏的网站代做网站微信号
  • 湖北省京山县建设局网站wordpress 站点打开慢
  • 如何写网站建设方案海南住房与城乡建设部网站
  • qq怎么做自己的网站旧房翻新装修
  • 网站开发 技术投标wordpress删除相似文章
  • 做化妆品销售网站如何wordpress 增加小工具
  • 上海网站建设关键词排名携程网站开发
  • 国内外贸免费网站建设app跨平台开发
  • 微信微官网如何制作成都seo优化推广
  • 上线了建站怎么样建筑公司企业资料
  • 濮阳建站推广哪家好怎么做营销网站推广