CS0103 - имя не существует в контексте - PullRequest
0 голосов
/ 17 февраля 2019

В настоящее время я следую пошаговому уроку Microsoft Visual C #, девятый выпуск.Я столкнулся с проблемой, которая утверждает, что имя не существует в контексте.Я провел некоторое исследование и нашел пример того, как решить проблему, но все еще не повезло.Должен ли я проигнорировать это и продолжить или провести дополнительное исследование?

, вот сценарий, который вызывал проблему.

       (division, remainder) = divide(leftHandSide, rightHandSide);

Код:

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();
    }

    private void calculateClick(object sender, RoutedEventArgs e)
    {
        int calculatedValue = 0;

        try
        {
            int leftHandSide = System.Int32.Parse(lhsOperand.Text);
            int rightHandSide = System.Int32.Parse(rhsOperand.Text);


            if (addition.IsChecked.HasValue && addition.IsChecked.Value)
            {
                calculatedValue = addValues(leftHandSide, rightHandSide);
                showResult(calculatedValue);
            }
            else if (subtraction.IsChecked.HasValue && subtraction.IsChecked.Value)
            {
                calculatedValue = subtractValues(leftHandSide, rightHandSide);
                showResult(calculatedValue);
            }
            else if (multiplication.IsChecked.HasValue && multiplication.IsChecked.Value)
            {
                calculatedValue = multiplyValues(leftHandSide, rightHandSide);
                showResult(calculatedValue);
            }
            else if (division.IsChecked.HasValue && division.IsChecked.Value)
            {
                int division, remainder;
                (division, remainder) = divide(leftHandSide, rightHandSide);

                result.Text = $"{division} remainder {remainder}";
            }
        }
        catch (Exception caught)
        {
            expression.Text = "";
            result.Text = caught.Message;
        }
    }

    private int addValues(int leftHandSide, int rightHandSide)
    {
        expression.Text = $"{leftHandSide} + {rightHandSide}";
        return leftHandSide + rightHandSide;
    }

    private int subtractValues(int leftHandSide, int rightHandSide)
    {
        expression.Text = $"{leftHandSide} - {rightHandSide}";
        return leftHandSide - rightHandSide;
    }

    private int multiplyValues(int leftHandSide, int rightHandSide)
    {
        expression.Text = $"{leftHandSide} * {rightHandSide}";
        return leftHandSide * rightHandSide;
    }

    private int divideValues(int leftHandSide, int rightHandSide)
    {
        expression.Text = $"{leftHandSide} / {rightHandSide}";
        return leftHandSide / rightHandSide;
    }

    private int remainderValues(int leftHandSide, int rightHandSide)
    {
        expression.Text = $"{leftHandSide} % {rightHandSide}";
        return leftHandSide % rightHandSide;
    }

    private void showResult(int answer) => result.Text = answer.ToString();
}

1 Ответ

0 голосов
/ 17 февраля 2019

В вашем разделе деления вы вызываете функцию divide, которая должна возвращать кортеж с двумя значениями.Нет, где в вашем коде вы определяете такой метод.Вместо этого вы определили divideValues и remainderValues.Вы можете изменить его на:

else if (division.IsChecked.HasValue && division.IsChecked.Value)
{
    int division = divideValues(leftHandSide, rightHandSide);
    int remainder = remainderValues(leftHandSide, rightHandSide);

    result.Text = $"{division} remainder {remainder}";
}

Обратите внимание, что, вызывая эти функции одну за другой, вы увидите только expression.Text из remainderValues.


Кроме того, вы также можете написать новую функцию:

private (int division, int remainder) divide(int leftHandSide, int rightHandSide)
{
    expression.Text = $"division: {leftHandSide} % {rightHandSide}, remainder: {leftHandSide} % {rightHandSide}";
    return (leftHandSide / rightHandSide, leftHandSide % rightHandSide);
}

и затем вызвать, как и раньше:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...