如果输入为空,则将数据类型double默认为0

时间:2016-11-08 08:45:50

标签: c# forms types

如果用户没有在文本框中输入值,我将设置变量设置为0会有点困难,因为变量会在多个表单中传递,如果它以相同的形式存在,那么它会变得棘手会更容易做到。我的代码附在下面。

//in one of my input forms
//runs on button click
if (!string.IsNullOrWhiteSpace(TXTCustomerGrowth.Text))
{
  fm.SaveGrowth(Convert.ToDouble(TXTCustomerGrowth.Text));
  //fm is instance of class where my methods to save variables are
}

//in class
public void SaveGrowth(double value)
{
    customerGrowth = value;
}

public double GetGrowth()
{
    return customerGrowth;
}

//in the final summary form
double growth = fm.GetGrowth();

我最初尝试将变量保存为字符串并在需要时转换为double但它抱怨它无法将类型字符串转换为double,所以基本上我想知道的是如何修改第一个if语句所以如果文本框为null,则将变量设置为null(我的问题是我不知道如何在我的情况下这样做,因为变量不是在输入表单中创建的。

修改

我忘了提到它最初运行正常,但我在摘要屏幕上有一个编辑按钮,允许您更改您的值及其删除增长值时的值,并将其留空而不会注册并保持增长与它是什么。

EDIT2:

我的编辑按钮会将您带回到开头,因此您输入的值不会被删除, 按下摘要按钮时,会调用此方法:

public void ShowSummary()
{
    calculatingForm.Show();
    summaryForm.UpdateForm();
    calculatingForm.Hide();
    summaryForm.Show();
}

并且在UpdateForm方法中是:

double growth = fm.GetGrowth();

2 个答案:

答案 0 :(得分:0)

String Foo = "21"
Double bar;
if(Double.TryParse(Foo, out bar))
{

}

答案 1 :(得分:0)

进一步尝试回答我自己的问题是代码答案:

if (!string.IsNullOrWhiteSpace(TXTCustomerGrowth.Text))
{
    fm.SaveGrowth(Convert.ToDouble(TXTCustomerGrowth.Text));
}
else
{
    fm.SaveGrowth(0);
}