簡體   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