2015-04-29 103 views
-1

我創建了一個類像下面空對象引用錯誤

public class Table 
{ 
    public enum ColumnNames 
    { 
     ID, 
     TableName, 
     Active, 
     Date 
    } 

    public List<TableParameter> Parameters { get; set; } 
} 

public enum Types 
{ 
    INT, 
    STRING, 
    DATETIME, 
    BOOLEAN, 
    DECIMAL 
} 

public class TableParameter 
{ 
    public Table.ColumnNames ParameterName { get; set; } 
    public Types? Tip { get; set; } 
    public dynamic Value { get; set; } 
} 

當我嘗試使用它就像下面,我得到一個空對象引用錯誤。

Table tb3 = new Table(); 
tb3.Parameters.Add(new TableParameter() { ParameterName = Table.ColumnNames.ID, Value = 1, Tip = Types.INT }); 

希望你能幫助我。我會等待你的回答。

回答

4

需要初始化tb3.Parameters

Table tb3 = new Table(); 
tb3.Parameters = new List<TableParameter>(); 
tb3.Parameters.Add(new TableParameter() { ParameterName = Table.ColumnNames.ID, Value = 1, Tip = Types.INT }); 

,或者你可以在Table類的構造函數初始化自己像下面

public class Table 
{ 
    public Table() 
    { 
    Parameters = new List<TableParameter>(); 
    } 
} 
2

你永遠不會初始化Parameters。嘗試以初始化Table類constuctor Parameters財產。

public class Table 
{ 
    public Table() 
    { 
    Parameters = new List<TableParameter>(); 
    } 

    public enum ColumnNames 
    { 
     ID, 
     TabloName, 
     Active, 
     Date 
    } 

    public List<TableParameter> Parameters { get; set; } 
} 
0

謝謝。我更新了我的代碼,如下所示;

public class Table 
{ 
    public enum ColumnNames 
    { 
     ID, 
     TableName, 
     Active, 
     Date 
    } 

    public List<TableParameter> Parameters; 

    public Table() 
    { 
     Parameters = new List<TableParameter>(); 
    } 
} 
+6

同一答案已經發布。所以你應該接受這個答案是正確的,不要再發布相同的答案,這是沒有任何意義的。希望你明白我的觀點 –