我有一個List<Type>
,它們表示來自自定義腳本語言的基於文本的命令的簽名。我試圖確定如何解析String[]
到List<object>
在對象類型關聯到List<Type>
。基本上給了Type t
我想嘗試投一個String s
到Type
。給定一個類型和一個字符串,你可以嘗試將該字符串轉換爲該類型而不會干擾該類型?
到目前爲止,我有這個
Type t = ...;
String s = ...;
if(Convert.ChangeType(s, t) != null)
{
}
我懷疑是想Convert.ChangeType
更正確後。它的意思是簡單地改變給定對象的類型,而不是「解析」它。看到你不能簡單地做(double)"ImAString"
我會假設這個方法將被用於在「直接」可鑄造的對象類型之間進行轉換。
是否有此任何通用的解決方案?或者是做這個創建於給定Type
大switch
每個個案中解析(在未來開關最有可能缺少類型)的唯一途徑?
編輯:此外,返回類型ChangeType
是對象。我假設如果我要做retObjectFromChange is double
會是真的(假設我將類型改爲雙精度型)?
'Convert.ChangeType()'好像是一種正確的方法。您可以將字符串轉換爲雙精度,但如果轉換失敗,則可能會拋出異常。即:'「1.001」'可以正常工作,而「ImAString」會拋出異常。 – ebyrob