2017-06-02 38 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); 
相關問題