2015-04-27 54 views
0

我试图将属性添加到Add()方法,但它似乎不工作。我确定我错过了一些东西。将属性添加到Add()方法

Items.Add(new ItemProperties 
        { 
         Item = Convert.ToInt32(lines[i]), 
         Description = lines[i + 1], 
         Quantity = Convert.ToInt32(lines[i + 2]), 
         UnitPrice = Convert.ToInt32(lines[i + 3]), 
         Tax = Convert.ToInt32(lines[i + 4]), 
         TotalTax = 34234, 
         Total //<-- Error: Invalid initializer member declarator 

        }); 

ItemProperties类:

public class ItemProperties 
     { 
      public int Item { get; set; } 
      public string Description { get; set; } 
      public int Quantity { get; set; } 
      public int UnitPrice { get; set; } 
      public int Tax { get; set; } 
      public int TotalTax { get; set; } 
      public int Total { 
       get 
       { 
        return Quantity * UnitPrice; 
       } 
       set 
       { 
       } 
      } 
     } 

我得到两个错误:

无效的初始成员声明

'合计' 的名称不在当前情况下存在

我想什么Total财产做的是的Quantity * UnitPrice结果添加到Add()方法

+5

只需删除该行,它没有任何意义。摆脱空调也是如此。 –

+0

@HansPassant谢谢! –

+0

您不希望_“将Quantity * UnitPrice的结果添加到Add()方法”_中。你希望'Total'自动返回'Quantity * UnitPrice',它已经做到了。 –

回答

2
public int Total 
{ 
    get 
    { 
     return Quantity * UnitPrice; 
    } 
    set 
    { 
    } 
} 

变化

public int Total 
{ 
    get 
    { 
     return Quantity * UnitPrice; 
    } 
} 

您可以使用属性,只有吸气剂

+0

添加属性时删除总字段。 – Thijs

0

你没有为Total设置setter,但是尝试为它设置一些值。所以我建议在初始化逻辑中实现setter或删除Total的使用

public int Total { 
       get 
       { 
        return Quantity * UnitPrice; 
       } 
       set 
       { 
        // you need to add some code 
       }