Winforms Pobiera/Ustawia między klasami, powodując błąd - Błąd odwołania do obiektu

0

Pytanie

Problemy z rozwiązaniem tego problemu. Może być, po prostu przepalony, tbh, zajmuję się tym już od kilku godzin. Jestem nowy w klasach w C#, i to wybija mnie z dupy, starając się przekazywać dane między klasami. Wiem, że są kroki, które mi brakuje, ale microsoft docs to nie pomoże z moim problemem, więc czytaj dalej.

Próba przekazania wartości z jednej klasy do drugiej. Kod błędu, który dostaję, - CS0120

Jest to format tego, że używam w pierwszej klasie

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 = " + ";
        }
}

a kod wewnątrz innej klasy, w który staram się wysłać dane, wygląda następująco

    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;
        }
    }

Ponadto, jeśli ktoś chce mi powiedzieć, jak wysłać odpowiedź z powrotem w pierwszej klasie, będzie to również duża pomoc.

c# get set winforms
2021-11-22 00:07:03
1

Najlepsza odpowiedź

2

Tworzysz instancję klasy.

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 = " + ";
        }
}
2021-11-22 00:26:38

Zmienna ma nazwę MathFirstClass i to jest ten utrzymany jest raczej w MathFirstClass? Byłoby mniej skomplikowane, gdyby klasa i zmienna miały różne nazwy? (Twoja edycja zadbała o tym. Dziękuję.)
jason44107

Tak więc, jeśli mam inne przełączniki, na przykład rad_Sub i rad_Mult, trzeba będzie dodać ten wiersz przed każdym operatora if() lub tylko raz na górze?
KyleC

@ jason44107 można użyć nazwy klasy do nazewnictwa, ale pierwsza litera powinna zaczynać się od małych liter. Możesz poszukać w Google nazwy zmiennych w C #
Meysam Asadi

@KyleC Użyj struktury if (){} else if (){}
Meysam Asadi

@МейсамАсади ty
KyleC

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................