[英]Can't add values to List (Count is always 1) - C#
很多次,我不得不創建結構列表以將數據存儲在C#中。 但是這一次,我遇到了一個問題,我似乎無法將值添加到列表中。 由於我已經做過類似的項目,所以我不太明白為什么,但是如果有人可以幫助我,我將不勝感激。
class mng
{
int day = 0;
List<Despesas> dias = new List<Despesas>();
public struct Despesas
{
public double transportes;
public double agua;
}
public mng ()
{
}
public void addValues(double transportes, double agua)
{
Despesas dia = new Despesas();
try
{
dia.transportes = transportes;
}
catch
{
MessageBox.Show("Error", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
try
{
dia.agua = agua;
}
catch
{
MessageBox.Show("Error", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
try
{
dias.Add(dia);
}
catch
{
MessageBox.Show("Error", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
MessageBox.Show("Added: " + dias.Count);
day++;
}
在Form1上:
private void button1_Click(object sender, EventArgs e)
{
try{
double transportes = Convert.ToDouble(txtTransportes.Text);
double agua = Convert.ToDouble(txtAgua.Text);
mng mngV = new mng();
mngV.addValues(transportes, agua);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
在重載構造函數上,我有一條消息,該消息顯示每次添加一個新列表值時列表值的計數,並且猜測值始終為1,而我只是不明白為什么。
與該項目和我已經完成的其他類似項目不同的是,該項目具有兩種形式,我認為與我的問題無關。
在重載構造函數上,我有一條消息,該消息顯示每次添加一個新列表值時列表值的計數,並且猜測值始終為1,而我只是不明白為什么。
那是因為每次創建一個新的mng
實例(順便說一句,應該給它一個更有意義的常規名稱)時,都是在創建一個新列表,該列表以空為開頭。 您要向其中添加一項,因此計數為1。
如果要在mng
多個實例之間共享單個列表,則可以使dias
變量靜態(在這種情況下,它與任何特定實例都沒有關聯),或者可以將引用傳遞給構造函數。
另外,也許您根本根本不想創建mng
的新實例-也許您應該在現有實例上調用方法 ? 沒有更多的上下文很難知道。
作為附帶說明,我強烈建議您避免使用公共場所和易變結構(您的Despesas
類型)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.