我怎么写这个更短?对于每种情况,我必须写这个然后太长,因为有48个数字所以我需要48个案例。有没有办法制作循环?
switch (ballBounce.ToString())
{
case "1":
if (ballBounce == n0)
{
textBox1.Text = number.ToString();
}
break;
case "2":
if (ballBounce == n1)
{
textBox1.Text = number.ToString();
}
break;
case "3":
if (ballBounce == n2)
{
textBox1.Text = number.ToString();
}
break; ...
答案 0 :(得分:4)
在这种情况下,循环是无用的。 你可以使用字典。
private Dictinoary<string, string> cases = new Dictionary<string, string> {
{"1", "one"},
{"2", "two"},
// ...
};
// in some method
string text;
if (cases.TryGetValue(ballBounce.ToString(), out text)){
this.textBox1.Text = text;
}
如果你想要比简单值更聪明的东西,你可以在字典中使用函数。
private Dictinoary<string, Func<string>> cases = new Dictionary<string, Func<string>> {
{"1", () => "one"},
{"2", () =>
{
if (DateTime.Now.Seconds % 2 == 0) { return "A"; }
else { return "B"; }
}},
// ...
};
// in some method
Func<string> textProvider;
if (cases.TryGetValue(ballBounce.ToString(), out textProvider)){
this.textBox1.Text = textProvider();
}
答案 1 :(得分:1)
根据你的ToString(),我假设ballBounce是一个int。
if (ballBounce <= 48 && ballBounce > 0)
{
textBox1.Text = ballBounce.ToString();
}
答案 2 :(得分:0)
为什么将if
与case
一起使用?
你不需要检查两次。
如果这是每个案例的代码
textBox1.Text = number.ToString();
那么您不需要switch
或if
jsut写textBox1.Text = number.ToString();
,你很高兴。
如果你有一些情况,你可以这样做:
switch (ballBounce.ToString())
{
case "1":
case "2":
case"3":
//....
textBox1.Text = number.ToString();
}