【问题标题】:Winforms Get/Set between classes causing error - Object Reference ErrorWinforms Get/Set 在类之间导致错误 - 对象引用错误
【发布时间】:2021-12-31 16:36:48
【问题描述】:

无法解决这个问题。可能只是被烧毁了,我已经在这几个小时了。我是 C# 中的类的新手,它让我试图在类之间传递数据感到厌烦。我知道我缺少一些步骤,但是 microsoft docs 对我的问题没有太大帮助,所以就到这里。

试图将值从一个类传递给另一个类。我得到的错误代码是 CS0120

这是我在第一堂课中使用的格式

private void btn_Compute_Click(object sender, EventArgs e)
    {
        decimal dL = Validator(box_Left.Text);
        decimal dR = Validator(box_Right.Text);
        decimal Answer = 0;
        string op = "";
        if (rad_Add.Checked == true)
        {
            MathFirstClass.Left = dL;
            MathFirstClass.Right = dR;
            op = " + ";
        }
}

我尝试将数据发送到的另一个类中的代码如下所示

    decimal left;
    decimal right;
    decimal Answer;

    public decimal Left
    {
        get { return left; }
        set { left = value; }
    }

    public decimal Right
    {
        get { return right; }
        set { right = value; }
    }

    public decimal Add_Operands
    {
        get
        {
            Answer = Left + Right;
            return Answer;
        }
    }

另外,如果有人想告诉我如何将答案发回第一堂课,那也会很有帮助。

【问题讨论】:

  • 那么你想从这个问题中得到什么?您刚刚实现了一个二元加法运算,您可以轻松使用它。
  • 除非我不能,否则我遇到了对象引用错误。
  • 您在哪一行得到对象引用错误?

标签: c# winforms get set


【解决方案1】:

你创建一个你的类的实例

private void btn_Compute_Click(object sender, EventArgs e)
{
        decimal dL = Validator(box_Left.Text);
        decimal dR = Validator(box_Right.Text);
        decimal Answer = 0;
        string op = "";
        
        //****************************************
        MathFirstClass mathFirstClass = new MathFirstClass();
        
        if (rad_Add.Checked == true)
        {
            mathFirstClass.Left = dL;
            mathFirstClass.Right = dR;
            op = " + ";
        }
}

【讨论】:

  • 变量名为MathFirstClass,类型为MathFirstClass?类和变量具有不同的名称会不会更容易混淆? (您的编辑解决了这个问题。谢谢。)
  • 因此,如果我有其他单选按钮,例如 rad_Sub 和 rad_Mult,我是否需要在每个 if() 语句之前添加该行,或者只在顶部添加一次?
  • @jason44107 可以使用类名命名,但首字母要小写字母开头。您可以在 Google 中搜索 C# 中的命名变量
  • @KyleC 使用 if (){} else if (){} 结构
  • @MeysamaAsadi ty
猜你喜欢
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
  • 2010-11-07
  • 2010-10-22
  • 1970-01-01
相关资源
最近更新 更多