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

Bor*_*ode 5 c# types casting object

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

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

Ere*_*mez 13

你可以这样做:

object ab = Convert.Changetype(input, t);
Run Code Online (Sandbox Code Playgroud)

但是,看起来你想要以ab强类型的方式使用,你只能通过使用泛型来实现:

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

  • @BornToCode谢谢,修复它.监视窗口可能显示变量的类型(`object`),以及它的值的最终运行时类型(`short`).在这种情况下,"short"值被"加框"以便被称为"对象".在第二种情况下,变量本身就是一个"短".在任何一种情况下,`GetType`都会给你实际的值类型,即`Int16`(与short相同). (2认同)