2015-04-29 47 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

同一答案已经发布。所以你应该接受这个答案是正确的,不要再发布相同的答案,这是没有任何意义的。希望你明白我的观点 –