转换为类类型中声明的类型

时间:2011-10-20 21:00:51

标签: c# reflection casting

人,  我有一个方法在我传递类型类型的对象。我想转换我在此方法中的对象,以键入类型。例如

void SetNewRecord(Type requiredType)
{
  var list = GridView.DataSource as requiredType;
  for (int i = 0; i < list.Length; i++)
  {
    if (list[i].KOD == kod)
    {
      GridView.CurrentCell = GridView[0, i];

      return;
    }
  }
}

如果我将int []作为参数传递,我希望将GirdView.DataSource转换为int []。在C#中有可能吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用Generic解决问题

public interface ISample
{
    object KOD {get;set;} 
}

void SetNewRecord<T>() where T : ISample
{
     var list = GridView.DataSource as IEnumerable<T>;
     // implement needed logic here
}

如果你想通过反思来调用它

 MethodInfo castMethod = this.GetType().GetMethod("SetNewRecord").MakeGenericMethod(type);
 castMethod.Invoke(null, null);