如何将对象转换为传递给函数的类型?

时间:2012-06-28 14:25:49

标签: c# object types casting

这不能编译,但我想要做的只是将对象转换为传递给函数的't'?

public void My_Func(Object input, Type t)
{
   (t)object ab = TypeDescriptor.GetConverter(t).ConvertFromString(input.ToString());
}

2 个答案:

答案 0 :(得分:13)

您可以执行以下操作:

object ab = Convert.Changetype(input, t);

但是,您似乎希望以强类型方式使用ab,只能使用泛型来实现:

public void My_Func<T>(Object input)
{
   T ab = (T)Convert.ChangeType(input, typeof(T));
}

答案 1 :(得分:1)

public void My_Func(Object input, Type t)
{
    object test = new object();
    test = Convert.ChangeType(test, t);
    test = TypeDescriptor.GetConverter(t).ConvertFromString(input.ToString());
}