以委托作为值的字典

2023-12-30

我有以下课程

public class CVisitor : IVisitor
    {
        public int Visit(Heartbeat element)
        {
            Trace.WriteLine("Heartbeat"); 
            return 1;
        }
        public int Visit(Information element)
        {
            Trace.WriteLine("Information"); 
             return 1;
        }

    }

我想要一个带有映射的字典,每个参数类型都将映射到它的实现函数:Heartbeat 将映射到public int Visit(Heartbeat element)

我想做类似以下的事情:

    _messageMapper = new Dictionary<Type, "what should be here ?" >();
    _messageMapper.Add(typeof(Heartbeat), "and how I put it here?" );

我应该用什么代替“这里应该有什么?”以及“我怎么把它放在这里?”

Thanks


new Dictionary<Type, Func<object, int>>();

var cVisitor = new CVisitor();
_messageMapper.Add(typeof(Heartbeat), 
   new Func<object, int>(heartbeat => cVisitor.Visit((Heartbeat)heartbeat)) 
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以委托作为值的字典 的相关文章

  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • SSH 主机密钥指纹与模式 C# WinSCP 不匹配

    我尝试通过 WinSCP 使用 C 连接到 FTPS 服务器 但收到此错误 SSH 主机密钥指纹 与模式不匹配 经过大量研究 我相信这与密钥的长度有关 当使用 服务器和协议信息 下的界面进行连接时 我从 WinSCP 获得的密钥是xx xx
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 将 System.Windows.Forms.Keys 序列转换为 Char

    有没有办法转换由 Keys 枚举表示的击键序列 即System Windows Forms Keys 在一个字符中 例如 Keys Oem4进而Keys A产生 char 它一定存在于 WinAPI 中的某个地方 因为当我在文本框中按下按键
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • HTML 画布绘制线垂直于另一条线

    我使用 HTML canvas 绘制线条 如下图所示 但是该线条的两侧都有边缘 如图所示 两个边缘不是垂直到主线 我尝试了以下解决方案 但没有成功 旋转边缘线 但旋转会使它们从原始位置发生变化 求出该点的角度主线然后相对于线画线 但是这个解
  • 在 Symfony2 中组织可重用 DBAL 查询的最佳实践?

    我目前正在开发 Symfony2 项目 在大多数情况下 它是完全标准的 我正在使用 ORM 层通过我的实体与数据库进行交互 那里没有问题 但是 我确实需要对系统其他地方的现有模式中的一小部分表进行不频繁的查询 其中包含我所说的 参考 信息
  • 如何恢复已删除的环境变量?

    在调试 Visual Studio Community 的懒惰尝试中 我 根据另一个论坛的建议 删除了系统的所有环境变量 我意识到这样做是一个巨大的错误 开始按钮上的右键菜单不起作用 我有 Windows 10 无法在 设置 应用程序中执行
  • C# - 两个大型字符串数组的模糊比较

    我需要找到 B 中 部分 存在于 A 中的所有字符串 B Hello World Hello Stack Overflow Foo Bar Food is nice Hej A World Foo C B FuzzyCompare A C
  • 不同维度的 Numpy 数组广播

    我对 numpy 的广播规则有点困惑 假设您想要执行高维数组的轴方向标量积 以将数组维度减少一 基本上是沿一个轴执行加权求和 from numpy import A ones 3 3 2 v array 1 2 B zeros 3 3 V0
  • Node.js 和 Express:req.body 未定义

    我目前正在使用express 设计一个简单的浏览器应用程序 我正在尝试提取用户在下拉菜单中选择的值 我也给每个选项一个单独的值 并将表单的方法声明为 post 但是当我尝试进入他们选择的值时req body 该值未定义 我认识到问题可能在于
  • 如何使用 Angular 的 UI Bootstrap 分页指令进行服务器端分页

    您好 我们想要使用 Angular 的 UI Bootstrap 分页指令进行服务器端分页 我们知道如何创建 RESTful 端点来从我们的服务器提供页面 但没有看到任何有关如何将该端点连接到 Angular 的 UI Bootstrap
  • 如何在没有插件的情况下启用 Google 地图地球视图

    我正在评估不需要任何下载 安装的 3d 地球仪查看器的选项 作为替代方案Cesium js http cesiumjs org 我也在看谷歌地图 Js API v3 https developers google com maps docu
  • 如何在 django 中仅允许来自特定电子邮件域(例如“gmail”)的注册?

    我尝试了文档中所说的here https docs djangoproject com en 3 0 ref validators django core validators EmailValidator通过使用whitelist但它不起
  • Spring-AMQP重新排队消息计数是基于JVM的吗?

    我正在研究rabbitmq文档 似乎rabbitmq不处理消息重新传递计数 如果我要手动 ACK NACK 消息 我需要将重试计数保留在内存中 例如 通过使用关联 ID 作为映射中的唯一键 或者通过在消息中设置我自己的标头 然后重新传递它
  • 获取用于页面渲染的数据的 React 最佳实践是什么?

    我需要获取将用于我正在呈现的页面的数据 我目前正在 useEffect 挂钩中获取数据 我认为在渲染中使用数据之前尚未加载所有数据 当我尝试在芯片标签中使用它时 它给了我一个错误 属性姓氏未定义 我不确定应该在哪里或如何处理数据的收集 因为
  • 如何检查函数是在哪个模块中定义的? Python

    如何查看某个函数属于哪个模块 喜欢 check module sqrt 会回来math等等 如果有的话 函数有一个 module 属性 gt gt gt from math import sqrt gt gt gt sqrt module
  • 计算两个向量之间的角度matlab

    如果这个问题看起来非常基本 我很抱歉 但我在网上还找不到好的答案 我对向量以及如何在 matlab 中使用它们有点困惑 目前我有以下三对坐标 x和y Person 1 Person 1和Person 2的未来位置 请参阅 二维视图中的三个点
  • HTML版本选择[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Babel:转换为单个输出文件

    通天塔7 2 0 我需要转译我的 JS 文件并将它们组合成单个结果文件 这是我的尝试 npx babel source root src index js out file lib result js minified presets ba
  • docker-compose - 数据库迁移和其他前/后脚本

    我有一个示例 django 应用程序 我正在尝试使用 docker 启动并运行它 docker compose up调出 Web 数据库和其他容器以及它们之间的链接 但可能需要运行一些前置和后置脚本 我的场景中的前置脚本示例 git pip
  • 导出整个 git 配置以与 GIT_CONFIG 一起使用

    有什么办法可以转储entire将当前正在运行的 git 配置 本地 全局 系统 保存到一个文件中 然后可以将其用作GIT CONFIG file 就像是 git config list gt mygit cfg GIT CONFIG myg
  • 将 browserify 工作流程移至 gulp 任务 [vueify、browserify、babelify]

    我正在尝试将以下 browserify 工作流程迁移到单个 gulp 任务中 包 json scripts build browserify src main js gt dist build js browserify transform
  • Proguard 在 Android 工具 25.1.6 版本中失败

    我今天下载了 25 1 6 版本的 Android 工具 我注意到 proguard 因以下错误而崩溃 Error Execution failed for task app transformClassesWithNewClassShri
  • 以委托作为值的字典

    我有以下课程 public class CVisitor IVisitor public int Visit Heartbeat element Trace WriteLine Heartbeat return 1 public int V