C#中的类出错

时间:2017-07-15 17:07:29

标签: c#

嗨我上课有问题。

我创建了Function.cs类,其中包含了我的所有功能:

 public class Function
{
    public void Plus(Form1 form)
    {
        decimal multiple = 0.3m;
        decimal digit = Convert.ToDecimal(form.TextBox1Text);
        form.TextBox2Text = String.Format("{0:f}", (digit * multiple) + digit);
    }

在Form1.cs上我调用了这个类

else if (textbox.Text != string.Empty && textbox2.Text == string.Empty)
            {
                Function.Plus(); //error
            }

我在Function.Plus()上有错误。

2 个答案:

答案 0 :(得分:3)

您必须创建班级的新对象。然后调用你的Plus功能。

Function obj = new Function();
obj .Plus(//here you have to pass your argument of Form type)

答案 1 :(得分:1)

您应该实例化您的Function类或使Plus方法静态

<强>实例化

Function.cs

public class Function
{
    public void Plus(Form1 form)
    {
        decimal multiple = 0.3m;
        decimal digit = Convert.ToDecimal(form.TextBox1Text);
        form.TextBox2Text = String.Format("{0:f}", (digit * multiple) + digit);
    }
}

Main.cs

else if (textbox.Text != string.Empty && textbox2.Text == string.Empty)
            {
                var function = new Function();
                function.Plus(); //error
            }

使用的方法是静态的

否则你可以将Plus方法设为静态:

Function.cs

public class Function
{
    public static void Plus(Form1 form)
    {
        decimal multiple = 0.3m;
        decimal digit = Convert.ToDecimal(form.TextBox1Text);
        form.TextBox2Text = String.Format("{0:f}", (digit * multiple) + digit);
    }
}

Main.cs

else if (textbox.Text != string.Empty && textbox2.Text == string.Empty)
            {
                Function.Plus(); //error
            }

此外,如果你将方法设为静态,你将需要将Form1类型的参数传递给你的函数,如果使用了一个字段,就不能再使用Function类的字段。 / p>