C# class получение / установка IEnumerable ошибка оператора переменной

Я получаю ошибки компоновки в свойствах класса, когда получаю и устанавливаю перечисление другого класса, который имеет свои собственные методы получения и установки. Есть две одинаковые ошибки в инструкции get {} следующего кода. Я не уверен, как разрешить ошибки сборки, которые отображаются как: "В качестве оператора могут использоваться только выражения присваивания, вызова, приращения, уменьшения, ожидания и новых объектов".

   public class Data
    {

        private IEnumerable<Client> _clientData;

        private IEnumerable<Company> _companyData;

        public IEnumerable<Client> ClientData
        {
            get { _clientData ?? (_clientData = new List<Client>()); }
            set { _clientData = value; }
        }

        public IEnumerable<Company> CompanyData
        {
            get { _companyData ?? (_companyData = new List<Company>()); }
            set { _companyData = value; }
        }
    }

1 ответ

Вам необходимо вернуть заявление:

get { return _clientData ?? (_clientData = new List<Client>()); }

Даже если вы не пропустили оператор возврата, вы в принципе не можете использовать ?? (или действительно ? :, или свойства getters) как заявление само по себе. Это выражения, которые будут использоваться в других утверждениях.

Так, например:

String x = "Hello";

x.Length; // Invalid - just a property fetch can't be a statement
x.ToString(); // Pointless, but valid - method calls are statements
int y = x.Length; // Valid, assignment statement using property fetch
Другие вопросы по тегам