我目前正在为学校进行一项计划练习。我要创建一个程序,允许用户输入整数项目编号或字符串描述。然后,该条目被传递到两个重载的 GetDetails()
方法之一,然后显示包含所有订单详细信息的返回字符串。
如果方法版本接受整数,它将查找描述和价格。
如果方法版本接受字符串描述,它将查找商品编号和价格。
如果未找到该项目,这些方法会返回相应的消息。
class Program
{
static void Main()
{
string inputstring;
int itemNum;
WriteLine("Enter the item number or description of the item you would like to order.");
inputstring = ReadLine();
int.TryParse(inputstring, out itemNum);
GetDetails(itemNum);
}
private static void GetDetails(string itemNum)
{
if (itemNum == "Enchilada")
WriteLine("Item number 20 priced at $2.95.");
else if (itemNum == "Burrito")
WriteLine("Item number 23 priced at $1.95.");
else if (itemNum == "Taco")
WriteLine("Item number 25 priced at $2.25.");
else if (itemNum == "Tostada")
WriteLine("Item number 31 priced at $3.10.");
else
WriteLine("Item not found.");
}
private static void GetDetails(int itemNum)
{
if (itemNum == 20)
WriteLine("The Enchilada is priced at $2.95.");
else if (itemNum == 23)
WriteLine("The Burrito is priced at $1.95.");
else if (itemNum == 25)
WriteLine("The Taco is priced at $2.25.");
else if (itemNum == 31)
WriteLine("The Tostada is priced at $3.10.");
else
WriteLine("Item not found.");
}
}
我遇到的问题是让字符串部分正常工作。我可以通过删除 int.TryParse(inputstring, out itemNum); 并更改 GetDetails(inputstring) 来实现。这将允许字符串工作,但不会让程序的项目编号部分工作。我开始对如何让它发挥作用感到非常不知所措,并且希望得到一些意见。
最佳答案
改变
int.TryParse(inputstring, out itemNum);
GetDetails(itemNum);
至
if (int.TryParse(inputstring, out itemNum))
{
GetDetails(itemNum);
}
else
{
GetDetails(inputstring);
}
如果TryParse
成功,则返回true
。然后,这将使用该方法的 int
版本。否则,如果输入无法解析为 int
,则使用 string
方法。
关于c# - 将用户的输入传递给两个重载方法之一并显示返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43331751/