2010-06-14 120 views
0
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异常

回答

1

该代码myexcelSheet.MyColumnNames = new MyExcelSheets().MyColumnNames;只获得该属性的引用,但它没有实例化。

添加代码

this. MyColumnNames = new List<string>; 

在静态构造函数将解决这个问题,因为这部分代码将被运行时调用,我们不担心实例化状态传输对象(因为它是在这种情况下)

例如,

static MyExcelSheets(){this. MyColumnNames = new List<string>; } 

谢谢, 维杰

2

假设public List MyColumnNames { get; set; }实际上是宣布为public List<string> MyColumnNames { get; set; }

行:

myexcelSheet.MyColumnNames = new MyExcelSheets().MyColumnNames; 

应该是:

myexcelSheet.MyColumnNames = new List<string>; 

虽然它通常会更好地做到这一点一个构造函数或其他东西。