class MyExcelSheets
{
public List MyColumnNames { get; set; }
}
如何在“List MyColumnNames”中添加Excel数据的列名。它返回给我对象引用未设置为对象的实例。
我想在上面的课程中使用:
myexcelSheet = new MyExcelSheets();
myexcelSheet.MyColumnNames = new MyExcelSheets().MyColumnNames;
foreach (DataColumn col in dTable.Columns)
myexcelSheet.MyColumnNames.Add(col.ColumnName.ToString());
我该如何解决?
错误:NullReferenceException
答案 0 :(得分:2)
假设public List MyColumnNames { get; set; }
实际上声明为public List<string> MyColumnNames { get; set; }
行:
myexcelSheet.MyColumnNames = new MyExcelSheets().MyColumnNames;
应该是:
myexcelSheet.MyColumnNames = new List<string>;
虽然在构造函数中执行此操作通常会更好。
答案 1 :(得分:1)
代码myexcelSheet.MyColumnNames = new MyExcelSheets().MyColumnNames;
只获取对属性的引用,但它不会实例化。
添加代码
this. MyColumnNames = new List<string>;
静态构造函数中的将解决问题,因为这部分代码将在运行时被调用,我们不必担心实例化状态转移对象(就像在这种情况下一样)
如,
static MyExcelSheets(){this. MyColumnNames = new List<string>; }
谢谢, 维杰