我正在写一个方法来生成一个DataTable作为一个通用的IEnumerable数据源。我想设置在球场上,如果世界上没有价值的默认值,用下面的代码:为什么不编译这段代码?
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);
}
}
}
它抛出这个错误:
The type or namespace name 'typeAux', could not be found (are you missing a using directive or an assembly reference?)
为什么?函数“Default(Type)”不应该返回该类型的默认值吗?
'默认()'需要命名类型,而不是一个'Type'参考。例如,'default(int)'。 – recursive