cat*_*ier 1 .net c# 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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后
typeof(Tester).GetMethods()
Run Code Online (Sandbox Code Playgroud)
将返回我隐式转换MethodInfo.
但是,如果我这样做:
typeof(int).GetMethods()
Run Code Online (Sandbox Code Playgroud)
它不会返回任何op_implicit
我已经看到你可以在这里看到这个表,但我想知道是否有可能从框架本身反映它.
请注意,这不是一个真正的阻塞问题,如果不可能,我会手动从表中添加转换器,但我显然希望动态构建(更干净,更不容易出错).
原始类型的运算符没有在框架中定义 - 它们是CLI本身的一部分; 他们基本上都有自己的特殊指示.没有涉及IL,没有方法,所以没有什么MethodInfo可以参考.
System.Decimal但是,如果你看一下,你会发现运算符在框架本身中"只是"实现了.
(在一个稍类似的方式,string不声明一个+操作者;的用途+C#转换为调用内string.Concat.)
| 归档时间: |
|
| 查看次数: |
1145 次 |
| 最近记录: |