2026/4/17 1:11:25
网站建设
项目流程
网站开发销售简历范文,展示型网站建设流程方案,西安市官网,企业网址是怎么写的笔记#xff1a;SetDefaultValue方法拆解#xff08;扩展方法泛型委托Lambda#xff09;核心功能
为Entity对象安全取值#xff1a;指定字段名#xff0c;有值则用委托转换后返回#xff0c;无值/转换失败则返回默认值。白话拆解#xff08;以取Name为例#xff09;
原…笔记SetDefaultValue方法拆解扩展方法泛型委托Lambda核心功能为Entity对象安全取值指定字段名有值则用委托转换后返回无值/转换失败则返回默认值。白话拆解以取Name为例原始冗余写法string name;if (userEntity ! null userEntity.IsNotNull(Name)){try { name userEntity[Name].ToString(); }catch { name 未知; }}else封装后写法string name userEntity.SetDefaultValue(Name, 未知, val val.ToString());关键语法拆解扩展方法this Entity en → 静态类this参数可直接用实例调用泛型调用时自动推导类型默认值未知→Tstring默认值0→Tint委托Funcobject, T✅ Funcobject, T action → 委托容器要求装“接收object、返回T”的方法✅ val val.ToString() → 匿名方法Lambda简化写法等价于 { return val.ToString(); }✅ action(en[name]) → 调用委托传入en[name]object执行匿名方法返回T实际开发优化点必加① 加en null判断避免空引用② 加try-catch处理转换失败比如Age是abc转int本人是一枚还没毕业的实习生目前在一家企业实习。今天看到代码中同事写的一些封装方法在自学过程中都有接触过但是联合起来使用看起来却很吃力我就想记录一下自己的成长过程路过的大佬还望多多担待~笔记是ai美化后的也是想通过学习一遍再写点笔记加点自己的想法的但是发现还是比较冗余。谢谢大家阿里嘎多