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

发布于 2024-12-10 23:41:33 字数 393 浏览 0 评论 0原文

各位, 我在传递 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# 中可以吗?

folks,
I have a method in i pass object of type Type. And i want to convert object that i have in this method, to type in Type. For example

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;
    }
  }
}

if i pass int[] as parameter, i want that GirdView.DataSource be converted to int[]. Is it possible in C# ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嘿嘿嘿 2024-12-17 23:41:33

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

You can try to use Generic to solve your problem

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

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

And if you want to call it via reflection

 MethodInfo castMethod = this.GetType().GetMethod("SetNewRecord").MakeGenericMethod(type);
 castMethod.Invoke(null, null);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文