2017-06-02 110 views
-1

所以,我想有两个列表<>类型的类的实例,然后用一个方法添加整数这些列表,但它不希望这样的工作方式,而且不知道如何纠正它。该AttachWagonFromLeft()方法不向列表中添加任何东西,我尝试用this到和借鉴的实例。有人有什么主意吗?谢谢。如何将项目添加到列表<int>实例的属性类型?

` 
public class TrainComposition { 
    private List<int> LeftWagons; 
    private List<int> RightWagons; 

    public List<int> LeftWagons1 { get => LeftWagons; set => LeftWagons = value; } 
    public List<int> RightWagons1 { get => RightWagons; set => RightWagons = value; } 

    public void AttachWagonFromLeft(int wagonId) { 
     this.LeftWagons1.Add(wagonId); 
    } 

    public void AttachWagonFromRight(int wagonId) { 
     this.RightWagons1.Add(wagonId); 
    } 
[...] 
`public static void Main(string[] args) { 

     TrainComposition tree = new TrainComposition(); 
     tree.LeftWagons1 = new List<int>(); 
     tree.RightWagons1 = new List<int>(); 
     tree.AttachWagonFromLeft(7); 
     tree.AttachWagonFromLeft(13); 
     Console.WriteLine(tree.DetachWagonFromRight()); // 7 
     Console.WriteLine(tree.DetachWagonFromLeft()); // 13 
` 
+0

您可以使用自动属性,这可能有助于减少混乱 –

+0

什么部分是不工作?你的代码适合我。 LeftWagons最后有2项。 –

+0

它确实有助于遵循风格规则,并使用骆驼套(lowe帽)来填充字段和pascal套(大写字母)以获得属性。 – ja72

回答

1

关于你的类,你可以使用Auto-Implemented Properties (C# Programming Guide)

public class TrainComposition 
{ 
    public List<int> LeftWagons1 { get; set; } 
    public List<int> RightWagons1 { get; set; } 

    public void AttachWagonFromLeft(int wagonId) 
    { 
     this.LeftWagons1.Add(wagonId); 
    } 

    public void AttachWagonFromRight(int wagonId) 
    { 
     this.RightWagons1.Add(wagonId); 
    } 
} 

您没有提供DetachWagonFromRight和DetachWagonFromLeft执行,但假设它从清单打印最后一个参数:

public int DetachWagonFromLeft() 
{ 
    return this.LeftWagons1.Last(); 
} 

您的代码无法正常运行,因为您要添加两次到左侧,没有到右:

tree.AttachWagonFromLeft(7); 
tree.AttachWagonFromLeft(13); 
相关问题