news 2026/4/23 13:17:44

扩展方法#x2B;泛型#x2B;委托#x2B;Lambda 联合使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
扩展方法#x2B;泛型#x2B;委托#x2B;Lambda 联合使用

笔记:SetDefaultValue方法拆解(扩展方法+泛型+委托+Lambda)

  1. 核心功能
    为Entity对象安全取值:指定字段名,有值则用委托转换后返回,无值/转换失败则返回默认值。

  2. 白话拆解(以取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());

  1. 关键语法拆解
  • 扩展方法:this Entity en → 静态类+this参数,可直接用实例调用;
  • 泛型:调用时自动推导类型(默认值"未知"→T=string,默认值0→T=int);
  • 委托Func<object, T>:
    ✅ Func<object, T> action → 委托容器(要求:装“接收object、返回T”的方法);
    ✅ val => val.ToString() → 匿名方法(Lambda简化写法,等价于 { return val.ToString(); });
    ✅ action(en[name]) → 调用委托(传入en[name](object)执行匿名方法,返回T);
  1. 实际开发优化点(必加)
    ① 加en == null判断,避免空引用;
    ② 加try-catch,处理转换失败(比如Age是"abc"转int);

本人是一枚还没毕业的实习生,目前在一家企业实习。今天看到代码中同事写的一些封装方法,在自学过程中都有接触过,但是联合起来使用看起来却很吃力,我就想记录一下自己的成长过程,路过的大佬还望多多担待~
笔记是ai美化后的,也是想通过学习一遍,再写点笔记加点自己的想法的,但是发现还是比较冗余。谢谢大家,阿里嘎多!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 9:05:31

导师推荐!研究生必用8款AI论文工具测评:开题报告文献综述全攻略

导师推荐&#xff01;研究生必用8款AI论文工具测评&#xff1a;开题报告文献综述全攻略 学术写作新工具测评&#xff1a;2026年研究生必备AI论文工具榜单出炉 随着人工智能技术的不断进步&#xff0c;越来越多的学术研究者开始依赖AI工具提升论文写作效率。然而&#xff0c;面…

作者头像 李华
网站建设 2026/4/16 12:31:05

ComfyUI:重构AI绘画的工作流逻辑与实践指南

在AI绘画工具从 Stable Diffusion WebUI 的点击式操作迈向更专业的节点编辑器时&#xff0c;ComfyUI 以其模块化节点系统和可视化编程范式重新定义了创作效率。与传统界面隐藏技术细节不同&#xff0c;ComfyUI 将文生图(Text-to-Image)、图生图(Image-to-Image)的底层流程完全透…

作者头像 李华
网站建设 2026/4/23 11:37:02

基于STM32智能光控窗帘系统设计(仿真、程序)

目录STM32智能光控窗帘系统概述硬件设计软件程序设计仿真验证扩展功能注意事项源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;STM32智能光控窗帘系统概述 智能光控窗帘系统基于STM32微控制器&#xff0c;通过光敏传感器检测环境光照强…

作者头像 李华
网站建设 2026/4/23 11:36:09

USB 控制传输完整流程解析

目录 一、前言二、控制传输的核心标识与建立事务三、控制传输的三大核心阶段四、控制传输各阶段的事务流程五、控制传输核心阶段细节补充六、总结七、结尾 一、前言 在上一篇笔记中&#xff0c;我们讲解了 USB 的批量、中断、实时三类传输方式&#xff0c;而控制传输作为 U…

作者头像 李华
网站建设 2026/4/22 18:41:09

Java小白面试实战:从基础到微服务场景解读

Java小白面试实战&#xff1a;从基础到微服务场景解读 场景&#xff1a;互联网大厂面试 超好吃是一名刚毕业的Java程序员&#xff0c;今天他迎来了人生中第一次互联网大厂的面试。面试官是一位资深的技术专家&#xff0c;在严肃的气氛中开始了对超好吃的技术考察。 第一轮&am…

作者头像 李华
网站建设 2026/4/18 13:35:07

工程化实践:JBoltAI框架赋能Java企业AI转型

在数字化浪潮的推动下&#xff0c;Java企业正面临着从传统业务模式向智能化、自动化转型的迫切需求。AI应用开发作为这一转型的关键环节&#xff0c;不仅能够显著提升业务效率&#xff0c;还能为企业开辟新的增长点。然而&#xff0c;AI应用的开发并非一蹴而就&#xff0c;尤其…

作者头像 李华