匿名对象类型
本文关键字:类型 对象 | 更新日期: 2023-09-27 18:23:54
我在C#中有两个函数:
function A (){
var arrDataList = new[] { new { dlName = dlFashion, idCate = 1 }, new { dlName = dlSport, idCate = 2 }, new { dlName = dlElec, idCate = 3 } };
B(arrDataList);
}
function B(Array a){
var arrDataList = a;
foreach (var item in arrDataList)
{
item.dlName.DataSource = new ServiceReference1.Service1Client().GetProductBestSeller(item.idCate); // throw error
item.dlName.DataBind(); // throw error
}
}
如何使用函数B请参阅函数A中的arrDataList。
由于匿名对象仅从object
继承,因此无法维护类型信息。但是,您可以使用dynamic
:
void B(dynamic[] a){
var arrDataList = a;
foreach (var item in arrDataList)
{
item.dlName.DataSource = new ServiceReference1.Service1Client().GetProductBestSeller(item.idCate); // throw error
item.dlName.DataBind(); // throw error
}
}
但是,没有编译时类型检查,因此如果数组中的对象没有实现属性,则只会在运行时注意到它。强烈建议不要采用这种方法。您最好创建实际的类型和期望这些类型的方法。