ジェネリック 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)」はその型のデフォルト値を返すべきではありませんか?