我正在創建一個像項目這樣的計算器,它需要對變量執行操作+, -, *, /, %, ^
。標準操作類型爲var1 OP var2
。我在運行時有兩個變量類型,它們可以是Int64
或double
。轉換(int爲double)並在運行時對變量進行操作
我可以將它們都轉換爲double並執行計算,但是我更願意在兩個變量都是整數時進行基於整數的計算(否則將兩者都轉換爲double)。這是我迄今爲止得到(加法)
if (container1.vType == Interop.variableType.DOUBLE || container2.vType == Interop.variableType.DOUBLE)
return Convert.ToDouble(container1.value) + Convert.ToDouble(container2.value);
return (Int64)container1.value + (Int64)container2.value;
然而,由於多個操作,使用相同/相似的代碼一遍又一遍地將產生不必要的冗餘(我只是必須改變運營商)。
那麼,我該如何做到這一點,以便它具有高性能和最小/無冗餘?
什麼是container1.values和container2.values的編譯時類型? – Vikhram
他們是對象 – Crimson7
你有什麼不必要的冗餘?另外,你期望在container1.value和container2.value中有什麼?他們是絃樂? Int64的?雙? Convert.ToDouble用於將字符串轉換爲double。 (Int64)只是在投射。如果你的值是字符串,那麼你可能需要使用Convert。但是,如果值是int或double,那麼你可以投它。 – kurakura88