操作历史C#
operation history C#
你好,我有一个问题,我刚刚开始我的 C# 冒险,我有一个问题,我想做计算器操作的历史,我的代码有效,但我想做最后 10 次操作的历史,但它只显示最后一次操作
public class CalculationHistory
{
public CalculationHistory()
{
Items = new List<CalculationHistoryItem>();
}
public List<CalculationHistoryItem> Items { get; set; }
public void Add(double x, double y, string z)
{
Items.Add(new CalculationHistoryItem(x, y, z));
}
}
public class CalculationHistoryItem
{
public double x { get; set; }
public double y { get; set; }
public string z { get; set; }
public CalculationHistoryItem(double first, double sec, string res)
{
x = first;
y = sec;
z = res;
}
}
这里是应该显示“p”键后最后 10 次操作的其余代码,但它只显示了我需要更改才能开始正常工作的最后一件事
case "P":
Console.WriteLine("Lista ostatnich operacji : ");
CalculationHistory history = new CalculationHistory();
history.Add(x, y, z);
foreach (var item in history.Items)
Console.WriteLine(item);
break;
问题的原因在于,对于每个新的计算操作,您都会创建一个新的“CalculationHistory”对象。因此每个 CalculationHistory 对象都有自己的历史记录。
解决方法:在循环外定义一个对象
CalculationHistory history = new CalculationHistory();
为每个动作添加到同一个对象。
Console.WriteLine("Lista ostatnich operacji : ");
history.Add(x, y, z);
foreach (var item in history.Items)
Console.WriteLine(item);
break;
你好,我有一个问题,我刚刚开始我的 C# 冒险,我有一个问题,我想做计算器操作的历史,我的代码有效,但我想做最后 10 次操作的历史,但它只显示最后一次操作
public class CalculationHistory
{
public CalculationHistory()
{
Items = new List<CalculationHistoryItem>();
}
public List<CalculationHistoryItem> Items { get; set; }
public void Add(double x, double y, string z)
{
Items.Add(new CalculationHistoryItem(x, y, z));
}
}
public class CalculationHistoryItem
{
public double x { get; set; }
public double y { get; set; }
public string z { get; set; }
public CalculationHistoryItem(double first, double sec, string res)
{
x = first;
y = sec;
z = res;
}
}
这里是应该显示“p”键后最后 10 次操作的其余代码,但它只显示了我需要更改才能开始正常工作的最后一件事
case "P":
Console.WriteLine("Lista ostatnich operacji : ");
CalculationHistory history = new CalculationHistory();
history.Add(x, y, z);
foreach (var item in history.Items)
Console.WriteLine(item);
break;
问题的原因在于,对于每个新的计算操作,您都会创建一个新的“CalculationHistory”对象。因此每个 CalculationHistory 对象都有自己的历史记录。
解决方法:在循环外定义一个对象
CalculationHistory history = new CalculationHistory();
为每个动作添加到同一个对象。
Console.WriteLine("Lista ostatnich operacji : ");
history.Add(x, y, z);
foreach (var item in history.Items)
Console.WriteLine(item);
break;