我做了一個程序,我想根據參數類型轉換所有值,這是通過運行時方法得到的,我想要的是將所有值用戶在文本框中輸入參數的定義類型。 我想要的是將字符串類型轉換爲int,float,decimal等類型在運行時C#
private object convertType(Type type, string value)
{
Type t = typeof(int);
//suppose value have stringvalue=33;
return 33; //of type int
}
有什麼辦法得到任何對象類型?
更新回答
爲@Atmane EL BOUACHRI,
class Program
{
static void Main()
{
var ints = ConvertType<int>("33");
var bools = ConvertType<bool>("false");
var decimals = ConvertType<decimal>("1.33m"); // exception here
Console.WriteLine(ints);
Console.WriteLine(bools);
Console.WriteLine(decimals);
Console.ReadLine();
}
public static T ConvertType<T>(string input)
{
T result = default(T);
var converter = TypeDescriptor.GetConverter(typeof(T));
if (converter != null)
{
try
{
result = (T)converter.ConvertFromString(input);
}
catch
{
// add you exception handling
}
}
return result;
}
}
在這裏,我不想硬編碼<int>
,<string>
或<decimal>
,我要的是
private object convertToAnyType(Type type, string value)
{
//Type t = typeof(int);
return ConvertType<type>("33");
}
有什麼辦法嗎?
你可能不得不使用泛型。 –
我做了一個動態的Web服務調用,其中任何Web服務都被我的項目佔用,但是我被卡住了不同類型的參數,我如何處理不同方法的所有參數? –
'Convert.ChangeType'將適用於有限範圍的內置類型 –