繁体   English   中英

通过反射获取Explicit Cast运算符

[英]Get Explicit Cast operators via reflection

我可以通过反射和调用(或者如果有一个更好的名称来表示)它们来获得演员吗? 这是主要问题,如果可以,它可以解决我的问题。

但是,如果有人知道以下解决方案:

我有很多对象变量(运行时之前未知数量),每个变量都有不同的类型,但是它们都是数字(双精度,整数,短整数)。

另一方面,我有相同数量的双变量,并且需要将每个变量的值进行比较。

object[] Value1; //this can be double, short or int, only known at runtime.
double[] Value2;

//I need simply to do:
(for int i = 0; i < Value1.Length, i++)
{
    (if Value1[i] == Value2[i]) //here's the problem
    //the comparison always return false, because of different types
    ....

我尝试了很多事情,包括通过反射调用的“ CompareTo”方法,但是它要求de object vars与包含调用的方法的实例具有相同的类型。 (不能从double调用并传递int参数,也不能从int调用并传递double参数)

因此,如果我可以将它们强制转换:一种方法是从double转换为未知类型(为此,我必须使用一些反射)另一种方法是将对象从对象转换为未知类型,然后从该类型转换为double 。

限制:

  • 动态不是一个选择(旧框架)

  • Value1项分别通过外部不变方法“作为对象”出现。

Value1更改为double[] 如果要放入object (例如shortintdouble等),请使用Convert.ToDouble(value) ;如果您知道一个shortint ,则它将隐式转换为double 然后可以将它们与Value2double进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM