2013-03-13 46 views
0

当我在&设置另一个具有它自己的独立获取者的类的枚举时,我在类属性中收到构建错误&设置者。以下代码的get {}语句中有两个相同的错误。我不确定如何解决显示的构建错误:'只能将赋值,调用,递增,递减,等待和新的对象表达式用作语句'。C#类获取/设置IEnumerable变量语句错误

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; } 
     } 
    } 

回答

5

你需要一个return语句:

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

即使你没有有一个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