這不會編譯,但我想要做的只是將對象轉換爲傳遞給該函數的't'?如何將對象轉換爲傳遞給函數的類型?
public void My_Func(Object input, Type t)
{
(t)object ab = TypeDescriptor.GetConverter(t).ConvertFromString(input.ToString());
}
這不會編譯,但我想要做的只是將對象轉換爲傳遞給該函數的't'?如何將對象轉換爲傳遞給函數的類型?
public void My_Func(Object input, Type t)
{
(t)object ab = TypeDescriptor.GetConverter(t).ConvertFromString(input.ToString());
}
你可以這樣做:
object ab = Convert.Changetype(input, t);
但是
,它看起來像你想在一個強類型的方式,您只能通過使用泛型這樣做使用ab
:
public void My_Func<T>(Object input)
{
T ab = (T)Convert.ChangeType(input, typeof(T));
}
不知道'Convert.Changetype',謝謝。 –
'object ab = Convert.Changetype(input,t);'和'object ab = input'有什麼區別? – ekholm
@ekholm'object ab =「01/01/2008」'''object ab = Convert.ChangeType(「01/01/2008」,typeof(DateTime))' –
public void My_Func(Object input, Type t)
{
object test = new object();
test = Convert.ChangeType(test, t);
test = TypeDescriptor.GetConverter(t).ConvertFromString(input.ToString());
}
我是否正確理解您要將輸入對象轉換爲給定的類型t?如果輸入不是t類型,會發生什麼? – FrankE
@FrankE - 該功能將以某種方式工作,以至於曾經使用它的人將知道在該功能中輸入正確的類型,我承擔責任! – BornToCode
你想用這個物體做什麼?也許你想使用一個通用函數'public void My_Func(T input)'? –
ekholm