访问表单中声明的​​变量

时间:2015-03-25 00:39:59

标签: c# forms

我正在学习C#课程,任务是使用Windows窗体创建一个小型转换器并使用函数来执行转换。

目前,我已经能够通过在表单中​​定义变量并让每个不同的按钮为变量赋值来完成所有操作。此时此工作正常,因为转换发生在转换按钮的事件中被推了。但是要完成任务,我需要将转换放在表单之外。

我遇到的问题是我无法弄清楚如何访问我在表单中声明的​​变量,我不知道在创建函数后如何将值返回到表单中。

我猜这个函数看起来像

public double conversion(string ConvertIn, string ConvertOut, double Value)
{
    Value = Double.Parse(ValueEntry.Text);
    double Output = (Value / Double.Parse(ConvertIn)) * Double.Parse((ConvertOut));
    FinalOutput.Text = Convert.ToString(Output);

    { 
        return Output;
    }

    return 0;
}

要转换我需要获取一个变量,用户输入一个文本框然后/通过一个按钮选择一个值,然后乘以一个按钮选择的另一个值

但正如我所说,我无法弄清楚如何获取已在表单中声明的​​3个变量,或者如何将值返回到表单输出文本框中。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

根据您的描述,听起来您已经被分配了一项家庭作业,其中您有一个特定要求,即此方法位于您的Form子类以外的类中。

最简单的方法是使用一些简单的实用程序"您可以在其中放置静态方法来执行此转换的类。方法参数列表应允许您的Form子类代码传递感兴趣的值,当然调用者将从方法中获取返回值并将其分配给适当的成员(例如FinalOutput.Text)。

例如:

static class Util
{
    public static string conversion(string ConvertIn, string ConvertOut, string Value)
    {
        double c1 = double.Parse(ConvertIn),
            c2 = double.Parse(ConvertOut),
            v = double.Parse(Value);

        return ((v / c1) * c2).ToString();
    }
}

您可以这样称呼它:

FinalOutput.Text = Util.conversion(ConvertIn.Text, ConvertOut.Text, ValueEntry.Text);

注意:

  • 缺乏a good, minimal, complete code example,我真的不知道如何设置用户界面。我可以从您提供的一小段代码中推断ValueEntryFinalOutput控件,但没有任何内容可以说明ConvertInConvertOut值的位置来自,所以我只是控制了那些相同的名字。我假设给出了上面的例子,你可以将实际正确的值传递给方法。

  • 如果这实际上是一项家庭作业,如图所示,您可能仍需要咨询您的老师,以便您更好地了解上述内容。 StackOverflow对于为问题提供实际的代码解决方案并不错,但要确保学生真正收到对实际学习感兴趣的概念至关重要的解释性细节要困难得多。 (此外,在不知道确切的家庭作业详细信息的情况下,虽然上述内容肯定是工作代码,但它不一定是您的老师实际想要的内容。)