使用一种方法将多个文本框转换为双精度数

时间:2014-08-17 16:19:20

标签: c# methods textbox double

我有3个文本框,从a_boxc_box

我正在尝试编写一种方法,允许我检查每个文本框中的double。目前,我必须使用3种单独的方法,每种方法都适合各自的文本框(见下文)。

public void CheckA() {
    if(Double.TryParse(a_box.Text, out a)) {
        return a;
    } else {
        logbox.AppendText ("Box A does not contain a double\r\n");
        a_box.Text = ("NO DOUBLE FOUND")
        a = double.NaN;
        return a;
    }
}

在理想的世界中,我可以用文本框的名称替换,只需要一个能够处理所有文本框的方法副本。为了给你一些背景,我想它会是这样的..

String aa = ("a");
String bb = ("b");
String cc = ("c");

Double a = CheckAll(aa);
Double b = CheckAll(bb);
Double c = CheckAll(cc);

public double CheckAll(string name) {
    Double value;
    String textbox = name + "_box";
    if (Double.TryParse(textbox, out value) {
        return value;
    } else {
        logbox.AppendText ("Box " + name + " does not contain a double");
        textbox.Text = ("NO DOUBLE FOUND");
        value = double.NaN
        return value;
    }
}

如果有人能够告诉我代码实际上应该是什么样子我真的很想知道,如果我来修改过程,如果未来或者我需要增加另一层复杂性,它将对我有很大帮助以后。

1 个答案:

答案 0 :(得分:1)

那么,为什么不简单地将 TextBox 传递给方法?

private double CheckTextBox(TextBox textBox)
{
    Double value;
    if (Double.TryParse(textBox.Text, out value))
    {
        return value;
    } 
    else 
    {
        logbox.AppendText(string.Format("Box {0} does not contain a double", textBox.Name));
        textBox.Text = ("NO DOUBLE FOUND");
        value = double.NaN;
        return value;
    }
}