2010-06-14 114 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>; 

雖然它通常會更好地做到這一點一個構造函數或其他東西。