为什么不是 C# 的 memberinfo() 反射函数 [重复]

2023-11-25

sizeof() and typeof(),但为什么不memberinfo()返回一个实例System.Reflection.MemberInfo为帮助反射代码而选择的部分代码。

Example:

Program() 
{
       Type t = typeof(Foo);

       Foo foo = new Foo();
       PropertyInfo pi = memberinfo(Foo.Name) as PropertyInfo;
       // or shall it be like this
       // PropertyInfo pi = memberinfo(foo.Name) as PropertyInfo;

       string name = pi.GetValue(foo, null);
}

我试图了解是否有根本原因可以在 C# 规范中实现这一点。

我并不是在抨击什么,我只是在做一些一厢情愿的事情,所以请善待。


埃里克·利珀特 (Eric Lippert) 在他的blog

直接引用那篇文章:

我突然想到以下几个{尚未完成此操作的原因}。 (1) 如何明确指定您想要特定显式接口实现的方法信息? (2) 如果重载决策会跳过某个特定方法,因为该方法不可访问,该怎么办?获取不可访问方法的方法信息是合法的;元数据始终是公开的,即使它描述了私人详细信息。我们是否应该使其无法获取私有元数据,从而使该功能变弱,或者我们应该使其成为可能,并使 infoof 使用与 C# 的其余部分略有不同的重载解析算法? (3) 如何指定您想要索引器设置器、属性获取器或事件处理程序加法器的信息?

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

为什么不是 C# 的 memberinfo() 反射函数 [重复] 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • 为远程网页保存cookie

    我有一个 PHP 应用程序 需要从另一个网页获取内容 而我正在阅读的网页需要 cookie 我找到了有关如何在拥有 cookie 后进行此调用的信息 http groups google com group comp lang php ms
  • Android:AdMob 无法正常工作

    AdMob 不会显示在我的应用中 每次我调用loadAd 我收到以下错误 请求资源 0x7f0b000e 失败 因为它很复杂 谷歌 找不到播放服务资源 检查您的项目配置以确保包含资源 获取广告响应时出现问题 错误代码 1 我花了几个小时寻找
  • 两个同名的类型参数

    我想知道为什么按照下面的示例允许两个具有相同名称 A 的类型参数 名为 A 我知道这是类型参数的糟糕命名 不要这样做 我的猜测是它们位于不同的范围级别 例如类级别和函数级别 并且编译器正在使用某种名称修改 class MyTest A ty
  • Facebook 会缓存共享缩略图多长时间?

    Facebook 会缓存共享缩略图多长时间 我使用以下方法为我的页面添加了自定义缩略图 但在页面上显示了我以前的图像 gt 它缓存在 FB 服务器上的某个位置 有什么想法如何刷新缓存或者 FB 加载新图像需要多长时间 使用 Facebook
  • Future 与 void [重复]

    这个问题在这里已经有答案了 假设我想创建一个异步方法 我可以将其返回类型设置为 Future void 或简单地 void 如下面的示例所示 两种方法似乎都能奏效 那么两者有什么区别呢 什么时候应该使用 Future void 而不是 vo
  • 使用 Google Play Developer API 进行服务器端授权?

    需要授权才能从Google Play 开发者 API 我知道如何使用 Postman 来做到这一点 但是实现授权要麻烦得多 重定向 url 处理重定向等等 当您已经在内部设置了身份验证数据时 将执行这些步骤谷歌开发者API控制台 1 GET
  • 是否有理由在 VHDL 和 Verilog 中初始化(而不是重置)信号?

    我从未初始化过信号 这样 任何缺少重置或分配的信号都将是未知的或已初始化 在一些参考代码中它们有初始化 这违背了我的愿望 此外 由于初始化不可综合 因此可能会出现模拟 综合不匹配的情况 在这种情况下有什么理由初始化信号吗 编辑 2011 年
  • Opencv中SVM参数优化

    我想优化Opencv中的SVM参数 但是 每次我使用train auto I get C 1 and gamma 1 有些人使用 LibSVM 但我无法为此编写包装器 两个都trainingData and labels取自现有代码 该代码
  • 混合行为 - 你可以绑定到它们的属性吗?

    我目前正在将我创建的许多附加行为迁移到混合行为 以便它们支持在 Expression Blend 中进行拖放 我注意到混合行为的作者倾向于将行为属性定义为依赖属性 我创造了一种行为 TiltBehaviour 它公开了公共依赖属性 Tilt
  • unsigned long 的类型与 Windows 上的 uint32_t 和 uint64_t 不同(VS2010)

    在 Windows 7 32 位下的 Visual Studio 2010 上 unsigned long 似乎是与 uint32 t 和 uint64 t 不同的类型 参见如下测试程序 include
  • 如何在 Meteor 中使用用户 JSON 文件?

    我需要知道 Meteor JS 中 JSON 文件的用法 首先 JSON 文件存储在 Meteor 文件夹结构中 以及如何使用 Meteor JS 获取 JSON 数据 它是使用扩展名 JSON 保存的 JSON 文件吗 我对此一无所知 您
  • Phonegap 2.4.0 与 Android 4.2 - 奇怪的双击行为

    我正在使用phonegap 2 4 0 创建Android 和iOS 应用程序 现在我认识到 在 Nexus 4 设备上使用 Android 4 2 2 的 Android 应用程序中 链接中的 onclick 事件会被触发两次 就像双击一
  • Vuetify 表单 .$refs validate 不是函数

    我在 v on 处理程序中收到错误 TypeError 当我单击控制台中的发送时 this refs EmailMessage validate 不是我表单上的函数 并且 this refs EmailMessage validate 不是
  • XML 架构:具有仅包含文本的属性的元素?

    我很难找到这个 如何在 XML 的 XML 架构文件中定义如下所示的元素
  • 使用 Net::HTTP.get 作为 https url

    我正在尝试使用Net HTTP get 对于 https URL data Net HTTP get uri Net HTTP https default port 但是 当我尝试打印结果时 得到以下结果 无法将 URI HTTPS 转换为
  • Oracle - 从引用游标中选择特定列

    我的情况 我有一个名为 Table1 的表 它有很多列 其中之一是 Column1 我不知道其他栏目 它们有时甚至可能会改变 有一个强类型引用游标类型 它返回 Table1 rowtype 名为 cur Table1 我有一个名为 SP1
  • Symfony2.8。如何从post请求中获取数据

    如何在控制器中接收来自 POST 请求的数据 我不用树枝 public function newAction Request request when I use content request gt getContent as resul
  • 如何在 C# 中格式化日期?

    在将 DateTime 对象格式化为字符串表示形式时 C 提供了很大的灵活性 但是 必须了解所有格式字符串才能使用这种灵活性 如果你想以 Fri June 24 的形式显示日期 你可以这样做 DateTime someDate DateTi
  • Amazon Cloudsearch:过滤是否存在

    我有一个亚马逊云搜索域 目的是过滤 语言 字段是否存在 并非所有对象都有语言 我希望过滤那些确实有语言的对象 但也返回那些没有任何语言的对象 我想过滤 or language en language null 但是 不能在字符串中传递 nu
  • 为什么不是 C# 的 memberinfo() 反射函数 [重复]

    这个问题在这里已经有答案了 有sizeof and typeof 但为什么不memberinfo 返回一个实例System Reflection MemberInfo为帮助反射代码而选择的部分代码 Example Program Type