C# 3.0 中的命名/可选参数?

2024-01-08

有没有办法像 C# 4.0 一样向 C# 3.0 添加可选参数?我一定要拥有这个功能,我已经等不及了!

Edit:

如果您知道实现此目的的解决方法/技巧,也请发布它。谢谢!


您可以使用匿名类型和反射作为命名参数的解决方法:

public void Foo<T>(T parameters)
{
    var dict = typeof(T).GetProperties()
        .ToDictionary(p => p.Name, 
            p => p.GetValue(parameters, null));

    if (dict.ContainsKey("Message"))
    {
        Console.WriteLine(dict["Message"]);
    }
}

所以现在我可以这样调用 Foo:

Foo(new { Message = "Hello World" });

...它会写我的信息。

基本上,我从传递的匿名类型中提取所有属性,并将它们转换为字符串和对象的字典(属性的名称及其值)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 3.0 中的命名/可选参数? 的相关文章

  • C# 静态类型不能用作参数

    public static void SendEmail String from String To String Subject String HTML String AttachmentPath null String Attachme
  • 格式说明符%02x

    我有一个简单的程序 include
  • 是否需要销毁运算符删除的形式才能真正销毁对象?

    C 20 添加了破坏形式operator delete区别于std destroying delete t范围 它导致delete表达式在调用之前不再销毁对象operator delete 目的是在显式调用对象的析构函数和释放内存之前 允许
  • 静态构造函数和 BeforeFieldInit?

    如果类型没有静态构造函数 则将执行字段初始值设定项 就在使用该类型之前 或者在某个时间点突发奇想 运行时 为什么这段代码 void Main start Dump Test EchoAndReturn Hello end Dump clas
  • 是否可以使用 http url 作为 DirectShow .Net 中源过滤器的源位置?

    我正在使用 DirectShow Net 库创建一个过滤器图 该过滤器图通过使用 http 地址和 WM Asf Writer 来流式传输视频 然后 在网页上 我可以使用对象元素在 Windows Media Player 对象中呈现视频源
  • 无法继承形状

    为什么我不能使用继承 a 的类Shapes class http msdn microsoft com en us library ms604615 28v vs 90 29 我需要延长Rectangle具有一些方法的类 但我想以与使用相同
  • 在 C++ 代码中转换字符串

    我正在学习 C 并开发一个项目来练习 但现在我想在代码中转换一个变量 字符串 就像这样 用户有一个包含 C 代码的文件 但我希望我的程序读取该文件并插入将其写入代码中 如下所示 include
  • Boost ASIO 串行写入十六进制值

    我正在使用 ubuntu 通过串行端口与设备进行通信 所有消息都必须是十六进制值 我已经在 Windows 环境中使用白蚁测试了通信设置 并得到了我期望的响应 但在使用 Boost asio 时我无法得到任何响应 以下是我设置串口的方法 b
  • 如何在 C# 中将 Json 转换为对象

    我想将 Json 转换为 C 中的对象 这里的 Json 是 值 e920ce0f e3f5 4c6f 8e3d d2fbc51990e4 如何使用 Object 问题看似愚蠢 但其实并不那么愚蠢 我没有简单的 Json 我有 IEnume
  • C# 中一次性对象克隆会导致内存泄漏吗?

    检查这个代码 class someclass IDisposable private Bitmap imageObject public void ImageCrop int X int Y int W int H imageObject
  • MVC 5 中具有 ASP.NET Identity 的 Autofac 不会验证 OWIN 管道中的安全标记

    我在 MVC 5 中设置了 AutoFac 来与 ASP NET Identity 一起使用 表面上一切似乎都工作正常 即用户可以创建帐户并登录 但后来我发现 当安全标记更改时 用户不会注销 通过在 AspNetUsers 表中进行暴力破解
  • Makefile 和 .Mak 文件 + CodeBlocks 和 VStudio

    我对整个 makefile 概念有点陌生 所以我对此有一些疑问 我正在 Linux 中使用 CodeBlocks 创建一个项目 我使用一个名为 cbp2mak 的工具从 CodeBlocks 项目创建一个 make 文件 如果有人知道更好的
  • Unity手游触摸动作不扎实

    我的代码中有一种 错误 我只是找不到它发生的原因以及如何修复它 我是统一的初学者 甚至是统一的手机游戏的初学者 我使用触摸让玩家从一侧移动到另一侧 但问题是我希望玩家在手指从一侧滑动到另一侧时能够平滑移动 但我的代码还会将玩家移动到您点击的
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • 条件类型定义

    如果我有一小段这样的代码 template
  • 在哪里可以找到 Microsoft.Build.Utilities.v3.5

    如何获取 Microsoft Build Utilities v3 5 我正在使用 StyleCop 4 7 Stylecop dll 中的 StyleCop msbuild 任务似乎依赖于 Microsoft Build Utilitie
  • C++ 指针引用混淆

    struct leaf int data leaf l leaf r struct leaf p void tree findparent int n int found leaf parent 这是 BST 的一段代码 我想问一下 为什么
  • winform c# 中的弹出窗口

    我正在开发一个需要弹出窗口的项目 但问题是我还希望能够通过表单设计器在此弹出窗口中添加文本框等 所以基本上我有一个按钮 当您单击它时 它将打开我在表单设计器中设计的另一个窗口 我一直在谷歌搜索 但还没有找到我需要的东西 所以我希望你们能帮助
  • 声明一个负长度的数组

    当创建负长度数组时 C 中会发生什么 例如 int n 35 int testArray n for int i 0 i lt 10 i testArray i i 1 这段代码将编译 并且启用 Wall 时不会出现警告 并且似乎您可以分配
  • 嵌入式linux编写AT命令

    我在向 GSM 模块写入 AT 命令时遇到问题 当我使用 minicom b 115200 D dev ttySP0 term vt100 时它工作完美 但我不知道如何在 C 代码中做同样的事情 我没有收到任何错误 但模块对命令没有反应 有

随机推荐

  • 如何在 Java 中为 Swing 组件设置字体粗细

    我想设置不同字体粗细我的 JFrame 对话框上的组件 我该怎么做呢 在下面的Java语句中 setFont new Font Dialog Font BOLD 12 当我使用 Font BOLD 时 它太粗体 当我使用 Font Plai
  • Spark 设置为从最早的偏移量读取 - 在尝试使用 Kafka 上不再可用的偏移量时抛出错误

    我目前正在 Dataproc 上运行 Spark 作业 在尝试重新加入组并从 kafka 主题读取数据时遇到错误 我做了一些挖掘 但不确定问题是什么 我有auto offset reset set to earliest所以它应该从最早可用
  • 将 JSON 对象的一部分存储在 pandas df 中[重复]

    这个问题在这里已经有答案了 我正在尝试将以下内容存储到 pandas 数据框中 page 1 results poster path null adult false overview Go behind the scenes during
  • 使用 koa.js 显示静态 html 文件

    我想要做的是在调用索引路由 即 localhost 3000 时提供 index html 文件 我使用 koa router 进行路由 所以我的路线如下所示 app all function next Send the file here
  • 我在 Matter.js 中自己的模型

    我正在使用 Matter js 编写一个简单的游戏 我无法弄清楚如何最好地将我的模型挂接到 Matter js 中 我的游戏以细菌为特色 我想上一堂课Bacterium这样我就可以管理这些人了 在我当前的实现中 此类创建并存储自己的Matt
  • char 160 在我的源代码中意味着什么?

    我正在使用以下格式字符串 将数字格式化为字符串 在某些时候我需要将这些数字字符串 1 234 567 转回类似 1234567 的内容 我正在尝试删除空字符但发现 value value Replace 由于某种原因 该字符串仍然是 1 2
  • 通过智能感知支持从文件动态生成枚举

    我听说了很多关于 Roslyn 的事情 我只是想是否可以从 xml 文件动态生成代码 这样对于开发人员来说它是透明的 他可以使用 IntelliSense 枚举代码 就像代码是在项目中编写的一样 我正在编写一个框架 其中通过配置文件完成了很
  • SPARK 整数溢出检查

    我有以下程序 procedure Main with SPARK Mode is F array 0 10 of Integer 0 1 others gt 0 begin for I in 2 F Last loop F I F I 1
  • 单个应用程序的 REST 和 SOAP Web 服务

    我们使用 Spring 构建了一个应用程序 并使用 Tomcat 部署了它 我们有一个可用的 REST 接口 但是我们的一个客户端只有一个 SOAP 客户端 我的理解是 SOAP Web 服务和 REST Web 服务不能在同一端口或应用程
  • 使用 JavaScript 手动单步执行 CSS 动画

    如果我有一个像这样的 CSS 关键帧动画 keyframes flash red 50 background f00 goflash anm flash animation name flash red animation duration
  • 即使删除了大量较大的文件,GIT Repo 仍然很大

    我有一个长期存在的 git 存储库 最终来自另一个开发人员的一大堆不相关的文件 占用了大量的存储空间 它使用了像 5gb 这样愚蠢的东西 因为他包含了资源文件 有 5000 个 PSD 文件在回购协议中 我已经从存储库中删除了所有这些文件并
  • MySQL EXPLAIN EXTENDED 过滤列(显然不是百分比)

    我一直在寻找这个 他们都说明了某种百分比 解释一下 EXPLAIN EXTENDED SELECT FROM PageAccess ORDER BY AccessId DESC LIMIT 20 SELECT COUNT FROM Page
  • C++ - 如何隐藏其他应用程序的窗口

    我正在尝试创建一个软件 Qt C 其中我需要一种根据窗口标题隐藏其他应用程序窗口的功能 隐藏意味着不可见而不是最小化 任何人都可以说出如何实现这一目标吗 我目前正在Windows平台上工作 注意 如果您通过 Qt 提供解决方案 将会更加舒适
  • 在多边形内部随机放置一个多边形

    我有两个多边形定义为一系列 2D 浮点值 不保证它们是凹的或凸的 他们不会超越自己 他们不能旋转 如果可能的话 我想将一个随机放置在另一个内部 主要问题是效率 我必须在几秒钟内执行大约 200 次左右 我已经研究这个问题几天了 但没有取得明
  • 为什么页面错误通常由操作系统而不是硬件处理?

    我发现在TLB丢失过程中 有些体系结构使用硬件来处理它 而有些体系结构则使用操作系统 但当涉及到页面错误时 大多数都使用操作系统而不是硬件 我试图找到答案 但没有找到任何文章解释原因 有人可以帮忙解决这个问题吗 谢谢 如果硬件能够自行处理它
  • 为什么 0.1 + 0.1 == 0.2?

    这是关于Java的 据我了解 由于二进制表示形式 Java 无法完美表示 0 1 这使得 0 1 0 1 0 1 0 3 错误的 然而 为什么 0 1 0 1 0 2 给出真实的 由于二进制表示形式 0 1 无法用 Java 完美表示 这使
  • createStackNavigator 不是一个函数

    我正在构建我的第一个练习应用程序 并尝试使用 createApp Navigator 组合屏幕之间的导航 但是 一旦我尝试使用createAppNavigator我收到以下错误 相关代码 App js import React from r
  • 向下滚动时,recyclerview 内的嵌套滚动视图不会触发 onscrolllistener

    Edit 我已经从 Web 服务加载了 200 多个数据集 当我向下滚动 recyclerview 时 它不会触发滚动侦听器 因为 如果我不使用 dy gt 0 条件 它会加载所有接下来的 20 个数据 20 个数据等等 最初是在进行此活动
  • 同一网页内的小程序之间如何共享数据?

    我在同一个网页中有几个小程序 我想在它们之间共享数据 做到这一点的最佳解决方案是什么 EDIT 感谢您的回复 我会尝试更具体 我的网页上有 3 个小程序 第一个将从网络服务器下载文件 第二个将用于本地修改文件 第三个会将修改后的文件发送回服
  • C# 3.0 中的命名/可选参数?

    有没有办法像 C 4 0 一样向 C 3 0 添加可选参数 我一定要拥有这个功能 我已经等不及了 Edit 如果您知道实现此目的的解决方法 技巧 也请发布它 谢谢 您可以使用匿名类型和反射作为命名参数的解决方法 public void Fo