C# 在c中键入类变量#

C# 在c中键入类变量#,c#,casting,C#,Casting,如何使用类型变量强制转换? 考虑下面的代码 public static object As(object o1, Type t1) { return (t1)o1; } 但它向我显示了一个错误,t1是一个变量,被用作类型。如何实现此目的。是否可以从类型对象检索类型。我被要求在c中实现Is和as运算符,因此方法名。尝试以下操作: public static T Cast<T>(object obj, Type castTo) { return (T)Convert.

如何使用类型变量强制转换? 考虑下面的代码

public static object As(object o1, Type t1)
{
  return (t1)o1;
}
但它向我显示了一个错误,t1是一个变量,被用作类型。如何实现此目的。是否可以从类型对象检索类型。我被要求在c中实现Is和as运算符,因此方法名。

尝试以下操作:

public static T Cast<T>(object obj, Type castTo) 
{ 
     return (T)Convert.ChangeType(obj, castTo); 
}
publicstatict转换(objectobj,类型castTo)
{ 
返回(T)转换.ChangeType(obj,CASTO);
}
例如:


泛型…….转换还是转换?方法返回对象,我不认为有理由强制转换它。对于转换,请使用Convert.ChangeType如果您不使用
dynamic
,而是通过
object
并执行
T Cast(object obj,Type castTo){return(T)Convert.ChangeType(obj,castTo);}
,则不需要返回
dynamic
。谢谢。我以非泛型的方式更新了anwseris。@NagasivaniSiddana:您可以使用此版本:,并使用dynamic。但我认为我的答案更为优雅,因为它显示了一个错误,即对象应该实现Iconvertable接口