我正在编写一种方法来生成一个将通用 IEnumerable 作为数据源的 DataTable。如果没有值,我正在尝试在字段上设置默认值,代码如下:
private void createTable<T>(IEnumerable<T> MyCollection, DataTable tabela)
{
Type tipo = typeof(T);
foreach (var item in tipo.GetFields() )
{
tabela.Columns.Add(new DataColumn(item.Name, item.FieldType));
}
foreach (Pessoa recordOnEnumerable in ListaPessoa.listaPessoas)
{
DataRow linha = tabela.NewRow();
foreach (FieldInfo itemField in tipo.GetFields())
{
Type typeAux = itemField.GetType();
linha[itemField.Name] =
itemField.GetValue(recordOnEnumerable) ?? default(typeAux);
}
}
}
它抛出这个错误:
找不到类型或命名空间名称“typeAux”(您是否缺少 using 指令或程序集引用?)
为什么?函数“Default(Type)”不应该返回该类型的默认值吗?