仅if(artikelen > 50)
有效。我想我知道为什么,但是我不知道如何解决问题。
开关功能,但我不知道如何在该功能中使用“ <或>”。
C#:
private void button1_Click(object sender, EventArgs e) {
double bruto = double.Parse(textBox1.Text);
double artikelen = double.Parse(textBox2.Text);
double loon;
if (artikelen < 10) {
double twee = bruto + (bruto / 100 * 2);
loon = twee;
textBox3.Text = loon.ToString();
}
if (artikelen >= 10 && bruto < 50) {
double vijf = bruto + (bruto / 100 * 5);
loon = vijf;
textBox3.Text = loon.ToString();
}
if (artikelen > 50) {
double tien = bruto + (bruto / 100 * 10);
loon = tien;
textBox3.Text = loon.ToString();
}
}
private void textBox1_TextChanged(object sender, EventArgs e) {
}
答案 0 :(得分:0)
对于C#7,您可以在switch
语句中使用小于或大于的语句:
switch (value)
{
case var _ when value < 10:
// something
break;
case var _ when (value >= 10 && value < 50):
// something
break;
case var _ when value > 50:
// something
break;
default:
// something
break;
}
对于多个输入,请查看C#8中的tuple patterns。
答案 1 :(得分:0)
看起来像很多重复的代码。
我将其拆分为:
cmd | split -l1 -d - output
获取因子。然后做数学:
decimal GetFactor( decimal artikelen )
{ // order is important!
if( artikelen >= 50 ) return 10m;
if( artikelen >= 10 ) return 5m;
return 2m;
}
产生
decimal GetLoon( decimal bruto, decimal factor ) // With factor from above result
{
return bruto + (bruto / 100m * factor);
}
一些其他要点:
textBox3.Text = GetLoon( bruto, GetFactor( artikelen) ).ToString();
,而不是浮点数!