【发布时间】:2021-03-18 10:00:41
【问题描述】:
我在 c# 中有一个控制台应用程序,我必须在其中编辑 xml 中的数据。到目前为止,这有效,我可以通过 id 选择获得要编辑的数据集,然后编辑单个值。我想要实现的是,如果用户在编辑后给出一个特定的值,他/她应该能够后退一步并编辑同一数据集的其他值。
例如:用户编辑一个id为2的客户的名字,并希望在保存名字后更改地址。应用程序应该能够识别之前的输入,然后只提供用户可以再次更改值的选项。
我尝试在方法内调用该方法,但我的应用程序在保存新值后刚刚完成,
这是我的代码:
bool inputTester = true;
while (inputTester)
{
Console.WriteLine("Welche Seiner Daten möchten Sie verändern?");
Console.WriteLine("1) Für Vornamen");
Console.WriteLine("2) Für Nachnamen");
Console.WriteLine("3) für Adresse");
Console.WriteLine("4) für Geburtsdatum");
Console.WriteLine("5) für Bankdaten");
Console.WriteLine("Bitte geben Sie nun eine Option ein");
switch (Console.ReadLine())
{
case "1":
tgt = tempId;
var name = tgt.Descendants("firstName").FirstOrDefault();
Console.WriteLine("Bitte geben sie den neuen Vornamen ein");
name.Value = Console.ReadLine();
xDoc.Save(filepath);
Console.WriteLine("Kunde gespeichert");
Console.Clear();
Console.WriteLine("Möchten Sie weitere Daten dieses Kunden bearbeiten? Falls Ja drücken Sie 1");
if (Console.ReadLine().Equals(1))
break;
break;
我尝试在案例 1 中调用其中的方法。
编辑:我尝试使用 while 建议来执行此操作,但结果仍然相同。程序刚结束,然后自行关闭。
我将代码缩减到可以在本地尝试的最小状态。我希望像这样很好。
【问题讨论】:
-
在
Console.WriteLine("Bitte geben Sie nun eine Option ein");之前添加一段时间(true),它也必须包装开关。并且有一个想法可以打破这个循环。我会为minimal reproducible example 提供建议,而不是完整的代码箭头代码,严格的最低限度将有助于解决和澄清问题。 -
和return 让你离开方法并且没有回头路。将 true false 存储在变量中并在最后返回。
-
我在原始帖子中使用while循环编辑了代码,但结果仍然和以前一样......