Проблема с C# получить и установить свойства для коллекции списков - PullRequest
0 голосов
/ 19 июня 2020

Мне нужен отдельный класс, который я хочу добавлять в некоторые списки каждый раз, когда устанавливаю новое значение. Использование _name.Add (value) в методе set не работает.

Я пробовал следующее

public class XMLInformation
{      
    public String BusType 
    {
        get
        {
            return SubBusType.LastOrDefault();
        }
        set
        {
            SubBusType.Add(value);
        }
    }
    public List<string> SubBusType { get; set; }

}

Я использую его так:

        public STARC.GlobalVariables.XMLInformation XMLInformation = new STARC.GlobalVariables.XMLInformation();
        XMLInformation.BusType = "Test";

теперь я получаю сообщение об ошибке (извините, ошибка частично в geeman)

ПРОБЛЕМА

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 19 июня 2020

Это может решить вашу проблему. Список не инициализирован, и вы его используете. поэтому сначала инициализируйте его, а затем используйте.

public class XMLInformation
{
    public String BusType
    {
        get
        {
            return SubBusType == null ? null: SubBusType.LastOrDefault();
        }
        set
        {
            if (SubBusType == null)
                SubBusType = new List<string>();
            SubBusType.Add(value);
        }
    }
    public List<string> SubBusType { get; set; }
}

Или

public class XMLInformation
{
    public String BusType
    {
        get
        {
            return SubBusType.LastOrDefault();
        }
        set
        {
            SubBusType.Add(value);
        }
    }
            public List<string> SubBusType { get; set; } = new List<string>();
}
0 голосов
/ 19 июня 2020

Вы должны инициализировать объект SubBusType, потому что при запуске он будет иметь значение null.

Вы можете сделать это, создав в конструкторе, как показано ниже

 public XMLInformation()
        {
            SubBusType = new List<string>();
        }

, или инициировать объявление SubType как показано ниже.

public List<string> SubBusType { get; set; } = new List<string>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...