自定义delegate 的运用实例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1.core
{
public delegate bool CompareHandler(DataParam p);
/// <summary>
/// 参数管理类
/// </summary>
public class DataParameter
{
public List<DataParam> DataParameters;
public DataParameter()
{
DataParameters = new List<DataParam>();
}
/// <summary>
/// 根据条件添加参数
/// </summary>
/// <param name="dataParam">要添加的参数</param>
/// <param name="compare">添加参数要满足的条件</param>
/// <returns>返回参数管理实例,实现联级添加</returns>
public DataParameter AddParam(DataParam dataParam, CompareHandler compare)
{
if (compare(dataParam))
{
DataParameters.Add(dataParam);
}
return this;
}
/// <summary>
/// 重载,添加参数
/// </summary>
/// <param name="dataParam">要添加的参数</param>
/// <returns>返回参数管理实例,实现联级添加</returns>
public DataParameter AddParam(DataParam dataParam)
{
DataParameters.Add(dataParam);
return this;
}
}
/// <summary>
/// 参数
/// </summary>
public class DataParam
{
public DataParam(string name, System.Data.SqlDbType dtype, object value)
{
this.Name = name;
this.DType = dtype;
this.Value = value;
}
/// <summary>
/// 参数名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 参数值
/// </summary>
public object Value { get; set; }
/// <summary>
/// 参数类型
/// </summary>
public System.Data.SqlDbType DType { get; set; }
}
}
调用代码:
protected void Page_Load(object sender, EventArgs e)
{
DataParameter instance = new DataParameter();
DataParam item = new DataParam("fname", SqlDbType.VarChar, "wede");
instance.AddParam(item, delegate(DataParam i) { return i.Name.Equals("fsname"); });
}
当然,也可以完全不用自定义delegate,而用Fun<DataParam,bool>代替delegate。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端