gpt4 book ai didi

c# - 带有用户输入的重载方法 (ReadLine())

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:04 24 4
gpt4 key购买 nike

我自己正在学习 C#(不是家庭作业),对有用户输入时的方法重载感到困惑。

我正在做一个练习,允许用户输入项目的出价金额。我需要包括 3 个重载方法(int、double、string)。 (练习说要使用 double 而不是小数。)

我知道如何编写重载方法,我的困惑来自于用户输入。如果我接受作为字符串的输入 (ReadLine),它会选择字符串方法,如果我接受作为 int 的输入,则会调用 int 方法。我该如何处理?我使用 tryParse 吗?我如何使用 3 种可能的输入法(int、double、string)来做到这一点?

此外,要添加一个令人沮丧的转折点,要接受字符串,它必须是数字并以“$”符号开头或数字后跟“美元”。我希望我在下面的代码中正确地完成了。不确定如何按字符串修剪,所以我不得不按字符来做...

希望得到一个基本/简单的解释,因为我还没有学到任何太花哨的东西。

谢谢!

namespace Auction
{
class Program
{
static void Main(string[] args)
{
string entryString;
//int entryInt; // do I need this?
//int entryDouble; // do I need this?
double bidNum;

const double MIN = 10.00;
Console.WriteLine("\t** WELCOME TO THE AUCTION! **\n");

Console.Write("Please enter a bid for the item: ");
entryString = Console.ReadLine().ToLower();
double.TryParse(entryString, out bidNum); // this turns it into a double...

BidMethod(bidNum, MIN);
Console.ReadLine();
}

private static void BidMethod(int bid, double MIN)
{ // OVERLOADED - ACCEPTS BID AS AN INT
Console.WriteLine("Bid is an int.");
Console.WriteLine("Your bid is: {0:C}", bid);
if (bid >= MIN)
Console.WriteLine("Your bid is over the minimum {0} bid amount.", MIN);
else
Console.WriteLine("Your bid is not over the minimum {0} bid amount.", MIN);
}

private static void BidMethod(double bid, double MIN)
{ // OVERLOADED - ACCEPTS BID AS A DOUBLE

Console.WriteLine("Bid is a double.");
Console.WriteLine("Your bid is: {0:C}", bid);
if (bid >= MIN)
Console.WriteLine("Your bid is over the minimum {0} bid amount.", MIN);
else
Console.WriteLine("Your bid is not over the minimum {0} bid amount.", MIN);
}

private static void BidMethod(string bid, double MIN)
{ // OVERLOADED - ACCEPTS BID AS A STRING

string amount;
int amountInt;

if (bid.StartsWith("$"))
amount = (bid as string).Trim('$'); // Remove the $
if (bid.EndsWith("dollar"))
amount = bid.TrimEnd(' ', 'd', 'o', 'l', 'l', 'a', 'r', 's');
else
amount = bid;

Int32.TryParse(amount, out amountInt); // Convert to Int
Console.WriteLine("Bid is a string.");

Console.WriteLine("Your bid is: {0:C}", bid);
if (amountInt >= MIN)
Console.WriteLine("Your bid is over the minimum {0} bid amount.", MIN);
else
Console.WriteLine("Your bid is not over the minimum {0} bid amount.", MIN);
}
}

最佳答案

假设您希望支持各种输入美元金额的方式,那么我建议您使用 TryParse 的想法可行:

  • 首先使用 int.TryParse - 因为 int 是最严格的(不允许小数点等)
  • 第二次使用double.TryParse
  • 最后,如果这些都不起作用,则保留为字符串。

关于c# - 带有用户输入的重载方法 (ReadLine()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22202329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com