Winforms Получает/Устанавливает между классами, вызывая ошибку - Ошибка ссылки на объект

0

Вопрос

Возникли проблемы с решением этой проблемы. Может быть, просто перегорел, тбх, я занимаюсь этим уже несколько часов. Я новичок в классах на 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# get set winforms
2021-11-22 00:07:03
1

Лучший ответ

2

Вы создаете экземпляр своего класса.

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

Переменная имеет имя MathFirstClass и это относится к типу MathFirstClass? Было бы менее запутанно, если бы класс и переменная имели разные имена? (Ваша правка позаботилась об этом. Спасибо.)
jason44107

Итак, если у меня есть другие переключатели, например rad_Sub и rad_Mult, мне нужно будет добавлять эту строку перед каждым оператором if() или только один раз вверху?
KyleC

@ jason44107 Вы можете использовать имя класса для именования, но первая буква должна начинаться со строчных букв. Вы можете поискать в Google имена переменных в C #
Meysam Asadi

@KyleC Используйте структуру if (){} else if (){}
Meysam Asadi

@МейсамАсади ты
KyleC

На других языках

Эта страница на других языках

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