2017-04-10 17 views
2

我目前正在为学校开展一项程序练习。我将创建一个允许用户输入整数项目号或字符串描述的程序。然后将该条目传递给两个超载的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)来做到这一点。这将允许字符串工作,但不会让程序的项目编号工作。我开始感到极度不知所措,试图让这个工作,并会喜欢一些输入。

回答

2

变化

int.TryParse(inputstring, out itemNum); 
GetDetails(itemNum); 

if (int.TryParse(inputstring, out itemNum)) 
{ 
    GetDetails(itemNum); 
} 
else 
{ 
    GetDetails(inputstring); 
} 

如果TryParse成功返回true。这将使用该方法的int版本。否则,如果输入不能被解析为int,则使用string方法。

+1

哇见了这件事后,现在更有意义。非常感谢你。我不得不在代码中修复其他一些东西,但这是我需要的,以便让我获得需要的突破。再次感谢。 –

+0

很高兴我能有一些帮助! –

相关问题