C#类获取/设置IEnumerable变量语句错误

cet*_*346 0 c# ifnull getter-setter

在获取和设置另一个具有自己独立的getter和setter的类的枚举时,我在类属性中收到构建错误.以下代码的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; }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

你需要一个return语句:

get { return _clientData ?? (_clientData = new List<Client>()); }
Run Code Online (Sandbox Code Playgroud)

即使你没有丢失return语句,你基本上也不能使用??(或者实际上? :,或者属性getter)作为一个语句.这些表述在其他语句中使用.

例如:

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
Run Code Online (Sandbox Code Playgroud)