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