人, 我有一个方法在我传递类型类型的对象。我想转换我在此方法中的对象,以键入类型。例如
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#中有可能吗?
答案 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);