转换为Class type中声明的类型

本文关键字:声明 类型 type Class 转换 | 更新日期: 2023-09-27 18:11:59

各位,我在传递类型为type的对象时有一个方法。我想将这个方法中的对象转换为type中的类型。例如

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#中可能吗?

转换为Class type中声明的类型

您可以尝试使用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);