[英]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
(例如short
, int
, double
等),请使用Convert.ToDouble(value)
;如果您知道一个short
或int
,则它将隐式转换为double
。 然后可以将它们与Value2
的double
进行比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.