我有以下功能。我想調用並將一個字符串轉換爲int32。怎麼做我打這個功能?調用函數Func <string,T>
靜態函數功能GetConverter(T示例)
static Func<string, T> GetConverter<T>(T example)
{
return (x) => Convert<T>(x);
}
這是用於轉換的代碼。我從StackOverflow得到了這段代碼,但不知道如何使用。
static T Convert<T>(string val)
{
Type destiny = typeof(T);
// See if we can cast
try
{
return (T)(object)val;
}
catch { }
// See if we can parse
try
{
return (T)destiny.InvokeMember("Parse", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.InvokeMethod | System.Reflection.BindingFlags.Public, null, null, new object[] { val });
}
catch { }
// See if we can convert
try
{
Type convertType = typeof(Convert);
return (T)convertType.InvokeMember("To" + destiny.Name, System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.InvokeMethod | System.Reflection.BindingFlags.Public, null, null, new object[] { val });
}
catch { }
// Give up
return default(T);
}
您已經知道目標類型(int),那麼爲什麼不使用int.Parse或int.TryParse方法呢? –
我需要創建一個動態數據類型轉換器。至於現在我知道它的字符串爲int。但後來我希望它能夠動態工作。 – Kanes