0

在获取和设置另一个类的枚举时,我在类属性中收到构建错误,该类具有自己的单独的 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; }
        }
    }
4

1 回答 1

5

您需要一个退货声明:

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

即使您没有缺少 return 语句,您基本上也不能单独使用??(或实际上? :,或属性获取器)作为语句。这些是要在其他语句中使用的表达式。

例如:

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
于 2013-03-13T15:55:46.910 回答