c# - 反射(reflect) op_implicit 表

标签 c# .net reflection

我目前正在寻找构建动态类型转换器,

例如,我可以轻松做到:

public struct Tester
{
    public int Hello;

    public static implicit operator int(Tester d)
    {
        return d.Hello;
    }

    public static implicit operator float(Tester d)
    {
        return d.Hello;
    }
}

然后
typeof(Tester).GetMethods()

将返回我隐式转换 MethodInfo。

但是,如果我这样做:
typeof(int).GetMethods()

它不会返回任何 op_implicit

我看到你可以看到表here ,但我想知道是否可以从框架本身反射(reflect)它。

请注意,这并不是真正的阻塞问题,如果不可能,我将手动从表中添加转换器,但我显然更喜欢动态构建(更干净且不易出错)。

最佳答案

基本类型的操作符没有在框架中定义——它们是 CLI 本身的一部分;基本上,他们有自己的特殊说明。不涉及 IL,没有方法,所以 MethodInfo引用。

如果你看System.Decimal ,但是,您会发现运算符是在框架本身中“仅”实现的。

(以稍微类似的方式,string 不声明 + 运算符;在 C# 中使用 + 被转换为对 string.Concat 的调用。)

关于c# - 反射(reflect) op_implicit 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22176415/

相关文章:

javascript - 获取两个不同时区的日期时间

c# - 如何让 PHP 对与 C# 完全相同的输入进行签名?

c# - 如何使 UI 在 Winforms 中响应

c# Counter 需要点击 2 次按钮才能更新

.net - 中间人服务器 HTTPS/SSL

c# - 使用 Reflection.Emit 从 SqlDataReader 填充可空类型

c# - 从字符串数组中删除列表中的内容

c# - 为什么我不能使用反射加载 AssemblyVersion 属性?

c# - 使用反射获取带有参数的静态方法

c# - 输入标签助手不适用于 Razor 代码