我有一個任務,我得找出一種方法,使輸入讀取double
和decimal
並執行一些操作作爲新的方法。C#使用動態的小數和雙精度
char[] charSeparators = new char[] { ' ' };
Console.Write("Please type few numbers: ");
dynamic[] test = Console.ReadLine().Split(charSeparators, StringSplitOptions.RemoveEmptyEntries).ToArray();
dynamic value = test[0];
for (int i = 1; i < test.Length; i++)
{
if (test[i] < value)
{
value = test[i];
}
}
我想通了使用dynamic
數據類型,但這將引發異常:
Operator '<' cannot be applied to operands of type 'string' and 'string'
我已經使用了switch
當用戶選擇,如果是double
或decimal
但我認爲做了一個回退這是更簡單的方法。
如何阻止dynamic
被讀爲string
?
嘗試使用'var'? –
'動態的'是編譯器對「推遲檢查」的一個標記,直到運行時。它不會自動爲您改變類型。您需要首先將其轉換爲「decimal」或「double」。 'var'不會工作,因爲你總是讀一個字符串。 –
'value'是一個字符串,因爲您可以從'string.Split'中獲取它。您需要使用各種'decimal'和'double'解析選項之一將這些字符串轉換爲數字值。 –