将未知类型作为参数传递给方法,然后稍后转换为该类型
本文关键字:类型 然后 转换 未知 参数传递 方法 | 更新日期: 2023-09-27 18:11:15
我需要创建一个接受未知类型的方法,然后使用该类型访问对象。
再详细一点。我有一个DevEx网格,我使用GetRow来获取记录。GetRow必须是Linq类对象的类型才能访问记录的属性。我试图创建一个泛型方法,允许我传入Linq对象的类型,然后动态地将结果从GetRow转换到该对象。然后,我将获取列字段名以访问如下属性(objectType是未知类型):
void DoGrid (GridView gv, objectType)
{
PropertyInfo[] properties = objectType.GetProperties();
foreach (GridColumn col in gv.Columns)
{
if (col.Visible)
{
PropertyInfo property = properties.Where(prop => prop.Name == col.FieldName).FirstOrDefault();
...
}
}
}
您是否正在寻找一种使用泛型完成此操作的方法?比如:
void DoGrid<T>(GridView gv)
{
PropertyInfo[] properties = typeof(T).GetProperties();
foreach (GridColumn col in gv.Columns)
{
...
}
}
然后你可以这样使用:
DoGrid<MyClassFullOfProperties>(myGridView);