平均速度wpf

时间:2014-01-17 02:41:40

标签: c# wpf timer

我正在努力平均每分钟杀死的bug速度。这是我的代码,但它抛出一个错误,说字符串输入格式是错误的。有什么建议?我正在使用C#进行WPF。

//Score is the number of bugs hit
score.Text = (_killings * 1).ToString();
//Change it to integer
int x = Int32.Parse(score.Text);
int y = Int32.Parse(TBCountdown.Text); - this is where the error is showing
//Get the average speed by dividing number of bugs hit during the time
int average = (x / y);
//Displaying the average score by converting int to string
averagescore.Text = average.ToString();

有关详细信息,我正在使用调度程序计时器,这是我的计时器代码。

TBCountdown.Text = string.Format("00:0{0}:0{1}", time / 60, time % 60);

3 个答案:

答案 0 :(得分:0)

这是您格式化文本框的方式:

TBCountdown.Text = string.Format("00:0{0}:0{1}", time / 60, time % 60);

然后你尝试将其解析为int。嗯,这不是一个int。将其解析为DateTime,或者更好的是,只使用您已有的变量(time)。通常,依靠UI来存储数据是一个糟糕的主意。用户界面可供展示。

int y = time;

答案 1 :(得分:0)

您的代码有一些问题,我假设您正在递增变量并使用它来创建某种经过的时间。首先要说明的是Ed S.是正确的,你不应该使用你的UI来存储你的价值,创建一个支持变量并使用它。至于你的问题:我在评论中提到的第一个想到的是你试图将看起来像TimeSpan的字符串转换为整数,第二个是你的格式字符串不会转换为DateTime对象出现格式异常错误。我可以通过将Timer的Tick事件处理程序更改为此来使代码工作。

DateTime temp = DateTime.Parse(string.Format("00:{0}:{1}", time / 60, time % 60));
TBCountdown.Text = temp.ToString("00:mm:ss");

你可以使用这样的东西来获得你的Y值(你没有回复我关于你想要什么样的价值的信息

int y = (int)TimeSpan.Parse(TBCountdown.Text).TotalSeconds;

这里有很多关于你想要什么的猜想,如果这不正确请告诉我们。

答案 2 :(得分:-2)

TBCountdown.Text = string.Format("00:0{0}:0{1}", (time / 60).ToString(), (time % 60).ToString());

记住这是一个字符串函数