2015-04-29 3 views
-1

Я создал класс как нижеNull Object Reference Error

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 .Try инициализировать Parameters свойства в constuctor класса Table.

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

Этот ответ уже опубликован. Поэтому вы должны принять этот ответ как правильный, а не повторять тот же ответ, который не имеет никакого смысла. Надеюсь, вы понимаете мою точку зрения –